Re: kexec breaks with 5.4 due to memzero_explicit

From: Hans de Goede
Date: Mon Oct 07 2019 - 10:07:20 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,

I already answered this bit.

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?

But I forgot to answer this part, yes I will look into making the build
fail as soon as we have the fix for this in place for 5.4 .

Regards,

Hans