Lines Matching +full:no +full:- +full:dump +full:- +full:oops

1 // SPDX-License-Identifier: GPL-2.0
5 * Hyper-V. This file is specifically for code that must be
6 * built-in to the kernel image when CONFIG_HYPERV is set
29 #include <linux/dma-map-ops.h>
31 #include <asm/hyperv-tlfs.h>
36 * Hyper-V specific globals so they are shared across all architectures and are
69 * Hyper-V specific initialization and shutdown code that is
95 * the guest page size may not be the same as the Hyper-V page
96 * size. We depend upon kmalloc() aligning power-of-two size
98 * allocated memory appears to Hyper-V as a page of the size
134 * Boolean to control whether to report panic messages over Hyper-V.
142 * reported to Hyper-V on panic.
182 /* Don't notify Hyper-V unless we have a die oops event or panic. */ in hv_die_panic_notify_crash()
191 regs = ((struct die_args *)args)->regs; in hv_die_panic_notify_crash()
195 * Hyper-V should be notified only once about a panic/die. If we will in hv_die_panic_notify_crash()
207 * buffer and call into Hyper-V to transfer the data.
216 if (detail->reason != KMSG_DUMP_PANIC || !sysctl_record_panic_msg) in hv_kmsg_dump()
220 * Write dump contents to the page. No need to synchronize; panic should in hv_kmsg_dump()
221 * be single-threaded. in hv_kmsg_dump()
231 * registers are no-op when the NOTIFY_MSG flag is set. in hv_kmsg_dump()
240 * Let Hyper-V know there is crash data available along with in hv_kmsg_dump()
249 .dump = hv_kmsg_dump,
269 pr_err("Hyper-V: panic message page memory allocation failed\n"); in hv_kmsg_dump_register()
275 pr_err("Hyper-V: kmsg dump register error 0x%x\n", ret); in hv_kmsg_dump_register()
286 /* Get information about the Hyper-V host version */ in hv_common_init()
288 pr_info("Hyper-V: Host Build %d.%d.%d.%d-%d-%d\n", in hv_common_init()
297 * Hyper-V expects to get crash register data or kmsg when in hv_common_init()
307 pr_info("Hyper-V: enabling crash_kexec_post_notifiers\n"); in hv_common_init()
311 * is enabled by default in non-isolated guests and in hv_common_init()
318 pr_err("Hyper-V: sysctl table register error"); in hv_common_init()
334 * Allocate the per-CPU state for the hypercall input arg. in hv_common_init()
336 * (per-CPU) hypercall input page and thus this failure is in hv_common_init()
337 * fatal on Hyper-V. in hv_common_init()
342 /* Allocate the per-CPU state for output arg for root */ in hv_common_init()
352 return -ENOMEM; in hv_common_init()
370 * the Hyper-V host in ACPI table OEM0. in ms_hyperv_late_init()
383 if (strncmp(header->oem_table_id, "MICROSFT", 8)) in ms_hyperv_late_init()
388 * no more than 4K bytes is somewhat arbitrary and just protects in ms_hyperv_late_init()
389 * against a malformed table. Hyper-V currently provides 64 bytes, in ms_hyperv_late_init()
392 if (header->length < sizeof(*header) + 8 || in ms_hyperv_late_init()
393 header->length > sizeof(*header) + SZ_4K) in ms_hyperv_late_init()
396 length = header->length - sizeof(*header); in ms_hyperv_late_init()
399 pr_debug("Hyper-V: Seeding rng with %d random bytes from ACPI table OEM0\n", in ms_hyperv_late_init()
413 header->checksum += randomdata[i]; in ms_hyperv_late_init()
417 for (i = 0; i < sizeof(header->length); i++) in ms_hyperv_late_init()
418 header->checksum += ((u8 *)&header->length)[i]; in ms_hyperv_late_init()
419 header->length = sizeof(*header); in ms_hyperv_late_init()
420 for (i = 0; i < sizeof(header->length); i++) in ms_hyperv_late_init()
421 header->checksum -= ((u8 *)&header->length)[i]; in ms_hyperv_late_init()
428 * Hyper-V specific initialization and die code for
454 return -ENOMEM; in hv_common_cpu_init()
474 * hyperv_pcpu_input_arg is not NULL, set_memory_decrypted() -> in hv_common_cpu_init()
475 * ... -> cpa_flush()-> ... -> __send_ipi_mask_ex() tries to in hv_common_cpu_init()
504 * may be used by the Hyper-V vPCI driver in reassigning interrupts in hv_common_cpu_die()
526 * Hypercall input/output addresses should also be 8-byte aligned. in hv_query_ext_cap()
553 pr_err("Hyper-V: Extended query capabilities hypercall failed 0x%llx\n", in hv_query_ext_cap()
575 * Default function to read the Hyper-V reference counter, independent
576 * of whether Hyper-V enlightened clocks/timers are being used. But on
577 * architectures where it is used, Hyper-V enlightenment code in
588 /* These __weak functions provide default "no-op" behavior and
590 * for which the default "no-op" behavior is sufficient can leave
592 * functions in arch-specific code.