2023-08-20 03:35:35

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [BUG resend next-20230818] error: 'prepare_elf_headers' defined but not used

On Sat, Aug 19, 2023 at 09:04:33PM +0800, Baoquan He wrote:
> On 08/18/23 at 07:28pm, Paul E. McKenney wrote:
> > Hello!
> >
> > This morning's rcutorture testing on next-20230818 complained about
> > prepare_elf_headers() being defined but unused on several rcutorture
> > scenarios. The patch below makes rcutorture happy, but might or might
> > not be a proper fix.
> >
> > This is a resend adding a few more people on CC, given a possible
> > relationship to 9f1f399ca999 ("x86/crash: add x86 crash hotplug support").
> >
> > Thoughts?
> >
>
> Thanks for reporting this, Paul.
> >
> > ------------------------------------------------------------------------
> >
> > diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
> > index 1d0f824559fce..926c39e22387b 100644
> > --- a/arch/x86/kernel/crash.c
> > +++ b/arch/x86/kernel/crash.c
> > @@ -127,7 +127,8 @@ void native_machine_crash_shutdown(struct pt_regs *regs)
> > crash_save_cpu(regs, safe_smp_processor_id());
> > }
> >
> > -#if defined(CONFIG_KEXEC_FILE) || defined(CONFIG_CRASH_DUMP)
> > +#if (defined(CONFIG_KEXEC_FILE) || defined(CONFIG_CRASH_DUMP)) && defined(CONFIG_SMP) && defined(CONFIG_X86_LOCAL_APIC)
>
> Hi Eric,
>
> Now prepare_elf_headers() is needed for kexec_file_load and crash
> hotplug support of kexec_load, change it like this?
>
> #if defined(CONFIG_KEXEC_FILE) || defined(CONFIG_CRASH_HOTPLUG)

If you mean the patch below:

Tested-by: Paul E. McKenney <[email protected]>

------------------------------------------------------------------------

diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
index 1d0f824559fc..c92d88680dbf 100644
--- a/arch/x86/kernel/crash.c
+++ b/arch/x86/kernel/crash.c
@@ -127,7 +127,7 @@ void native_machine_crash_shutdown(struct pt_regs *regs)
crash_save_cpu(regs, safe_smp_processor_id());
}

-#if defined(CONFIG_KEXEC_FILE) || defined(CONFIG_CRASH_DUMP)
+#if defined(CONFIG_KEXEC_FILE) || defined(CONFIG_CRASH_HOTPLUG)
static int get_nr_ram_ranges_callback(struct resource *res, void *arg)
{
unsigned int *nr_ranges = arg;