Re: kexec breaks with 5.4 due to memzero_explicit

From: Ingo Molnar
Date: Mon Oct 07 2019 - 09:09:49 EST



* Hans de Goede <hdegoede@xxxxxxxxxx> wrote:

> Hi,
>
> On 07-10-2019 10:50, Hans de Goede wrote:
> > Hi,
> >
> > On 07-10-2019 05:09, Arvind Sankar wrote:
> > > Hi, arch/x86/purgatory/purgatory.ro has an undefined symbol
> > > memzero_explicit. This has come from commit 906a4bb97f5d ("crypto:
> > > sha256 - Use get/put_unaligned_be32 to get input, memzero_explicit")
> > > according to git bisect.
> >
> > Hmm, it (obviously) does build for me and using kexec still also works
> > for me.
> >
> > But it seems that you are right and that this should not build, weird.
>
> Ok, I understand now, it seems that the kernel will happily build with
> undefined symbols in the purgatory and my kexec testing did not hit
> the sha256 check path (*) so it did not crash. I can reproduce this before my patch:
>
> [hans@shalem linux]$ ld arch/x86/purgatory/purgatory.ro
> ld: warning: cannot find entry symbol _start; defaulting to 0000000000401000
> ld: arch/x86/purgatory/purgatory.ro: in function `sha256_transform':
> sha256.c:(.text+0x1c0c): undefined reference to `memzero_explicit'

I've applied your fix, but would it make sense to also integrate this
linker test in the regular build with a second patch, to make sure
something similar doesn't occur again?

Thanks,

Ingo