Hi Greg (et al) On 10/01/2025 12:43, gregkh@xxxxxxxxxxxxxxxxxxx wrote: > > This is a note to let you know that I've just added the patch titled > > Revert "x86, crash: wrap crash dumping code into crash related ifdefs" > > to the 6.6-stable tree which can be found at: > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary > > The filename of the patch is: > revert-x86-crash-wrap-crash-dumping-code-into-crash-related-ifdefs.patch > and it can be found in the queue-6.6 subdirectory. > > If you, or anyone else, feels it should not be added to the stable tree, > please let <stable@xxxxxxxxxxxxxxx> know about it. > > > From 129885ec461fd82348e557524b087496947532fe Mon Sep 17 00:00:00 2001 > From: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > Date: Fri, 10 Jan 2025 13:09:11 +0100 > Subject: Revert "x86, crash: wrap crash dumping code into crash related ifdefs" > > From: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > > This reverts commit e5b1574a8ca28c40cf53eda43f6c3b016ed41e27 which is > commit a4eeb2176d89fdf2785851521577b94b31690a60 upstream. > > When this change is backported to the 6.6.y tree, it can cause build > errors on some configurations when KEXEC is not enabled, so revert it > for now. > This changelog appears not to reflect the settings in the config I sent because in that config KEXEC is enabled. The kexec and crash related lines are: # # Kexec and crash features # CONFIG_CRASH_CORE=y CONFIG_KEXEC_CORE=y CONFIG_KEXEC=y # CONFIG_KEXEC_FILE is not set # CONFIG_KEXEC_JUMP is not set # CONFIG_CRASH_DUMP is not set # end of Kexec and crash features Sorry. I'll try a build in a moment and report back. Chris > Reported-by: Ignat Korchagin <ignat@xxxxxxxxxxxxxx> > Link: https://lore.kernel.org/r/3DB3A6D3-0D3A-4682-B4FA-407B2D3263B2@xxxxxxxxxxxxxx > Reported-by: Lars Wendler <wendler.lars@xxxxxx> > Link: https://lore.kernel.org/r/20250110103328.0e3906a8@xxxxxxxxxxxxxxxxxxxxx > Reported-by: Chris Clayton <chris2553@xxxxxxxxxxxxxx> > Link: https://lore.kernel.org/r/10c7be00-b1f8-4389-801b-fb2d0b22468d@xxxxxxxxxxxxxx > Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx> > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > Cc: Dexuan Cui <decui@xxxxxxxxxxxxx> > Cc: Eric W. Biederman <ebiederm@xxxxxxxxxxxx> > Cc: Hari Bathini <hbathini@xxxxxxxxxxxxx> > Cc: Klara Modin <klarasmodin@xxxxxxxxx> > Cc: Michael Kelley <mhklinux@xxxxxxxxxxx> > Cc: Michael Kelley <mhklinux@xxxxxxxxxxx> > Cc: Naman Jain <namjain@xxxxxxxxxxxxxxxxxxx> > Cc: Nathan Chancellor <nathan@xxxxxxxxxx> > Cc: Pingfan Liu <piliu@xxxxxxxxxx> > Cc: Sasha Levin <sashal@xxxxxxxxxx> > Cc: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> > Cc: Wei Liu <wei.liu@xxxxxxxxxx> > Cc: Yang Li <yang.lee@xxxxxxxxxxxxxxxxx> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > --- > arch/x86/kernel/Makefile | 4 ++-- > arch/x86/kernel/cpu/mshyperv.c | 10 ++-------- > arch/x86/kernel/kexec-bzimage64.c | 4 ---- > arch/x86/kernel/kvm.c | 4 ++-- > arch/x86/kernel/machine_kexec_64.c | 3 --- > arch/x86/kernel/reboot.c | 4 ++-- > arch/x86/kernel/setup.c | 2 +- > arch/x86/kernel/smp.c | 2 +- > arch/x86/xen/enlighten_hvm.c | 4 ---- > arch/x86/xen/mmu_pv.c | 2 +- > 10 files changed, 11 insertions(+), 28 deletions(-) > > --- a/arch/x86/kernel/Makefile > +++ b/arch/x86/kernel/Makefile > @@ -99,9 +99,9 @@ obj-$(CONFIG_TRACING) += trace.o > obj-$(CONFIG_RETHOOK) += rethook.o > obj-$(CONFIG_CRASH_CORE) += crash_core_$(BITS).o > obj-$(CONFIG_KEXEC_CORE) += machine_kexec_$(BITS).o > -obj-$(CONFIG_KEXEC_CORE) += relocate_kernel_$(BITS).o > +obj-$(CONFIG_KEXEC_CORE) += relocate_kernel_$(BITS).o crash.o > obj-$(CONFIG_KEXEC_FILE) += kexec-bzimage64.o > -obj-$(CONFIG_CRASH_DUMP) += crash_dump_$(BITS).o crash.o > +obj-$(CONFIG_CRASH_DUMP) += crash_dump_$(BITS).o > obj-y += kprobes/ > obj-$(CONFIG_MODULES) += module.o > obj-$(CONFIG_X86_32) += doublefault_32.o > --- a/arch/x86/kernel/cpu/mshyperv.c > +++ b/arch/x86/kernel/cpu/mshyperv.c > @@ -209,9 +209,7 @@ static void hv_machine_shutdown(void) > if (kexec_in_progress) > hyperv_cleanup(); > } > -#endif /* CONFIG_KEXEC_CORE */ > > -#ifdef CONFIG_CRASH_DUMP > static void hv_machine_crash_shutdown(struct pt_regs *regs) > { > if (hv_crash_handler) > @@ -223,7 +221,7 @@ static void hv_machine_crash_shutdown(st > /* Disable the hypercall page when there is only 1 active CPU. */ > hyperv_cleanup(); > } > -#endif /* CONFIG_CRASH_DUMP */ > +#endif /* CONFIG_KEXEC_CORE */ > #endif /* CONFIG_HYPERV */ > > static uint32_t __init ms_hyperv_platform(void) > @@ -495,14 +493,10 @@ static void __init ms_hyperv_init_platfo > no_timer_check = 1; > #endif > > -#if IS_ENABLED(CONFIG_HYPERV) > -#if defined(CONFIG_KEXEC_CORE) > +#if IS_ENABLED(CONFIG_HYPERV) && defined(CONFIG_KEXEC_CORE) > machine_ops.shutdown = hv_machine_shutdown; > -#endif > -#if defined(CONFIG_CRASH_DUMP) > machine_ops.crash_shutdown = hv_machine_crash_shutdown; > #endif > -#endif > if (ms_hyperv.features & HV_ACCESS_TSC_INVARIANT) { > /* > * Writing to synthetic MSR 0x40000118 updates/changes the > --- a/arch/x86/kernel/kexec-bzimage64.c > +++ b/arch/x86/kernel/kexec-bzimage64.c > @@ -263,13 +263,11 @@ setup_boot_parameters(struct kimage *ima > memset(¶ms->hd0_info, 0, sizeof(params->hd0_info)); > memset(¶ms->hd1_info, 0, sizeof(params->hd1_info)); > > -#ifdef CONFIG_CRASH_DUMP > if (image->type == KEXEC_TYPE_CRASH) { > ret = crash_setup_memmap_entries(image, params); > if (ret) > return ret; > } else > -#endif > setup_e820_entries(params); > > nr_e820_entries = params->e820_entries; > @@ -430,14 +428,12 @@ static void *bzImage64_load(struct kimag > return ERR_PTR(-EINVAL); > } > > -#ifdef CONFIG_CRASH_DUMP > /* Allocate and load backup region */ > if (image->type == KEXEC_TYPE_CRASH) { > ret = crash_load_segments(image); > if (ret) > return ERR_PTR(ret); > } > -#endif > > /* > * Load purgatory. For 64bit entry point, purgatory code can be > --- a/arch/x86/kernel/kvm.c > +++ b/arch/x86/kernel/kvm.c > @@ -769,7 +769,7 @@ static struct notifier_block kvm_pv_rebo > * won't be valid. In cases like kexec, in which you install a new kernel, this > * means a random memory location will be kept being written. > */ > -#ifdef CONFIG_CRASH_DUMP > +#ifdef CONFIG_KEXEC_CORE > static void kvm_crash_shutdown(struct pt_regs *regs) > { > kvm_guest_cpu_offline(true); > @@ -852,7 +852,7 @@ static void __init kvm_guest_init(void) > kvm_guest_cpu_init(); > #endif > > -#ifdef CONFIG_CRASH_DUMP > +#ifdef CONFIG_KEXEC_CORE > machine_ops.crash_shutdown = kvm_crash_shutdown; > #endif > > --- a/arch/x86/kernel/machine_kexec_64.c > +++ b/arch/x86/kernel/machine_kexec_64.c > @@ -545,8 +545,6 @@ int arch_kimage_file_post_load_cleanup(s > } > #endif /* CONFIG_KEXEC_FILE */ > > -#ifdef CONFIG_CRASH_DUMP > - > static int > kexec_mark_range(unsigned long start, unsigned long end, bool protect) > { > @@ -591,7 +589,6 @@ void arch_kexec_unprotect_crashkres(void > { > kexec_mark_crashkres(false); > } > -#endif > > /* > * During a traditional boot under SME, SME will encrypt the kernel, > --- a/arch/x86/kernel/reboot.c > +++ b/arch/x86/kernel/reboot.c > @@ -796,7 +796,7 @@ struct machine_ops machine_ops __ro_afte > .emergency_restart = native_machine_emergency_restart, > .restart = native_machine_restart, > .halt = native_machine_halt, > -#ifdef CONFIG_CRASH_DUMP > +#ifdef CONFIG_KEXEC_CORE > .crash_shutdown = native_machine_crash_shutdown, > #endif > }; > @@ -826,7 +826,7 @@ void machine_halt(void) > machine_ops.halt(); > } > > -#ifdef CONFIG_CRASH_DUMP > +#ifdef CONFIG_KEXEC_CORE > void machine_crash_shutdown(struct pt_regs *regs) > { > machine_ops.crash_shutdown(regs); > --- a/arch/x86/kernel/setup.c > +++ b/arch/x86/kernel/setup.c > @@ -547,7 +547,7 @@ static void __init reserve_crashkernel(v > bool high = false; > int ret; > > - if (!IS_ENABLED(CONFIG_CRASH_RESERVE)) > + if (!IS_ENABLED(CONFIG_KEXEC_CORE)) > return; > > total_mem = memblock_phys_mem_size(); > --- a/arch/x86/kernel/smp.c > +++ b/arch/x86/kernel/smp.c > @@ -282,7 +282,7 @@ struct smp_ops smp_ops = { > .smp_cpus_done = native_smp_cpus_done, > > .stop_other_cpus = native_stop_other_cpus, > -#if defined(CONFIG_CRASH_DUMP) > +#if defined(CONFIG_KEXEC_CORE) > .crash_stop_other_cpus = kdump_nmi_shootdown_cpus, > #endif > .smp_send_reschedule = native_smp_send_reschedule, > --- a/arch/x86/xen/enlighten_hvm.c > +++ b/arch/x86/xen/enlighten_hvm.c > @@ -141,9 +141,7 @@ static void xen_hvm_shutdown(void) > if (kexec_in_progress) > xen_reboot(SHUTDOWN_soft_reset); > } > -#endif > > -#ifdef CONFIG_CRASH_DUMP > static void xen_hvm_crash_shutdown(struct pt_regs *regs) > { > native_machine_crash_shutdown(regs); > @@ -231,8 +229,6 @@ static void __init xen_hvm_guest_init(vo > > #ifdef CONFIG_KEXEC_CORE > machine_ops.shutdown = xen_hvm_shutdown; > -#endif > -#ifdef CONFIG_CRASH_DUMP > machine_ops.crash_shutdown = xen_hvm_crash_shutdown; > #endif > } > --- a/arch/x86/xen/mmu_pv.c > +++ b/arch/x86/xen/mmu_pv.c > @@ -2517,7 +2517,7 @@ out: > } > EXPORT_SYMBOL_GPL(xen_remap_pfn); > > -#ifdef CONFIG_VMCORE_INFO > +#ifdef CONFIG_KEXEC_CORE > phys_addr_t paddr_vmcoreinfo_note(void) > { > if (xen_pv_domain()) > > > Patches currently in stable-queue which might be from gregkh@xxxxxxxxxxxxxxxxxxx are > > queue-6.6/x86-hyperv-fix-hv-tsc-page-based-sched_clock-for-hibernation.patch > queue-6.6/memblock-use-numa_valid_node-helper-to-check-for-invalid-node-id.patch > queue-6.6/revert-x86-crash-wrap-crash-dumping-code-into-crash-related-ifdefs.patch > queue-6.6/memblock-make-memblock_set_node-also-warn-about-use-.patch > queue-6.6/revert-x86-hyperv-fix-hv-tsc-page-based-sched_clock-for-hibernation.patch