Re: kexec breaks with 5.4 due to memzero_explicit

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



* Ingo Molnar <mingo@xxxxxxxxxx> wrote:

>
> * 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?

Note that I delayed the v1 fix and will wait for your v2 fix instead.

Thanks,

Ingo