Re: arch/sh/kernel/relocate_kernel.S:38: Error: invalid operands for opcode

Baoquan He
2023-12-21T04:24:47Z

On 12/20/23 at 05:37pm, Al Viro wrote:
> On Wed, Dec 20, 2023 at 09:27:32PM +0800, Baoquan He wrote:
> > Since the kexec_core code building depends on CONFIG_MMU=y, we may
> > need to add dependency on MMU for ARCH_SUPPORTS_CRASH_DUMP. I made below
> > change, do you think it's OK?
> >
> > diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
> > index 7500521b2b98..fe1500871648 100644 > > --- a/arch/sh/Kconfig > > +++ b/arch/sh/Kconfig
> > @@ -548,6 +548,7 @@ config ARCH_SUPPORTS_KEXEC
> >
> > config ARCH_SUPPORTS_CRASH_DUMP
> > def_bool BROKEN_ON_SMP
> > + depends on MMU
> >
> > config ARCH_SUPPORTS_KEXEC_JUMP
> > def_bool y
> >
>
> I'm *not* familiar with crashdump or kexec machinery, let alone the
> current changes in there, so take the following with a cartload of
> salt, but... does sh crash dump support depend upon the code in
> question? From quick grep it looks like we only want it in machine_kexec(),
> so the conditionals used in the commit in question might be wrong...

Hmm, I checked commit d70c27b728b8da1 ("sh, kexec: fix the incorrect
ifdeffery and dependency of CONFIG_KEXEC") again, those ifdeffery of
CONFIG_KEXEC_CORE should be changed to CONFIG_CRASH_CORE because those
embraced codes are crash_core related codes.

machine_kexec() is needed by kexec reboot and crash dumping. We either
enable CONFIG_KEXEC_CORE, CONFIG_KEXEC or CONFIG_KEXEC_FILE only for
kexec reboot, or enable CONFIG_KEXEC_CORE, CONFIG_KEXEC or CONFIG_KEXEC_FILE
and CONFIG_CRASH_CORE, CONFIG_CRASH_DUMP to support kexec reboot and
crash dumping. Seems KEXEC_CORE codes can be built not relying on
CRASH_CORE, while CRASH_CORE need be built relying on KEXEC_CORE,
otherwise it doesn't make sense.

Anyway, I will try to clean up the ifdeffery so that they looks clearer.