Re: kexec breaks with 5.4 due to memzero_explicit
From: Ingo Molnar
Date: Mon Oct 07 2019 - 09:55:33 EST
* Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
> Hi,
>
> On 07-10-2019 15:09, Ingo Molnar 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,
>
> Thank you, unfortunately I was just minutes away from sending a v2
> which adds a missing barrier call (not strictly necessary, more future
> proofing).
>
> Hopefully you can still pick up v2 instead, let me know if you want
> an incremental patch instead.
Yeah, our mails crossed: I noticed that and didn't push out your fix, so
all should be good. Take your time.
Thanks,
Ingo