]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
x86/hyperv: Enable build of hypervisor crashdump collection files
authorMukesh Rathor <mrathor@linux.microsoft.com>
Mon, 6 Oct 2025 22:42:08 +0000 (15:42 -0700)
committerWei Liu <wei.liu@kernel.org>
Sat, 15 Nov 2025 06:18:16 +0000 (06:18 +0000)
Enable build of the new files introduced in the earlier commits and add
call to do the setup during boot.

Signed-off-by: Mukesh Rathor <mrathor@linux.microsoft.com>
[ wei: fix build ]
Signed-off-by: Wei Liu <wei.liu@kernel.org>
arch/x86/hyperv/Makefile
arch/x86/hyperv/hv_init.c
arch/x86/include/asm/mshyperv.h

index d55f494f471d4825ba695f74ba1fb130a374ed1e..6f5d97cddd805666e3aa78d2fe337efc16be0a40 100644 (file)
@@ -5,4 +5,10 @@ obj-$(CONFIG_HYPERV_VTL_MODE)  += hv_vtl.o
 
 ifdef CONFIG_X86_64
 obj-$(CONFIG_PARAVIRT_SPINLOCKS)       += hv_spinlock.o
+
+ ifdef CONFIG_MSHV_ROOT
+  CFLAGS_REMOVE_hv_trampoline.o += -pg
+  CFLAGS_hv_trampoline.o        += -fno-stack-protector
+  obj-$(CONFIG_CRASH_DUMP)      += hv_crash.o hv_trampoline.o
+ endif
 endif
index 21ed8963fafd395f6297f236174c4aab2f869b1c..e28737ec7054fe52dc85aa6da097a6f56febf337 100644 (file)
@@ -554,6 +554,7 @@ void __init hyperv_init(void)
                memunmap(src);
 
                hv_remap_tsc_clocksource();
+               hv_root_crash_init();
        } else {
                hypercall_msr.guest_physical_address = vmalloc_to_pfn(hv_hypercall_pg);
                wrmsrq(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
index 605abd02158dd640fc4f33762c9f42389176f95d..1342d55c2545ce8e2adfa214af3b6e934216c570 100644 (file)
@@ -237,6 +237,15 @@ static __always_inline u64 hv_raw_get_msr(unsigned int reg)
 }
 int hv_apicid_to_vp_index(u32 apic_id);
 
+#if IS_ENABLED(CONFIG_MSHV_ROOT) && IS_ENABLED(CONFIG_CRASH_DUMP)
+void hv_root_crash_init(void);
+void hv_crash_asm32(void);
+void hv_crash_asm64(void);
+void hv_crash_asm_end(void);
+#else   /* CONFIG_MSHV_ROOT && CONFIG_CRASH_DUMP */
+static inline void hv_root_crash_init(void) {}
+#endif  /* CONFIG_MSHV_ROOT && CONFIG_CRASH_DUMP */
+
 #else /* CONFIG_HYPERV */
 static inline void hyperv_init(void) {}
 static inline void hyperv_setup_mmu_ops(void) {}