Re: kexec breaks with 5.4 due to memzero_explicit

From: Hans de Goede
Date: Mon Oct 07 2019 - 09:41:07 EST


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.

Regards,

Hans