[Bionic] [PATCH 0/1] Kdump broken since 4.15.0-65 on secureboot - purgatory cannot load
Guilherme G. Piccoli
gpiccoli at canonical.com
Fri Apr 24 14:39:52 UTC 2020
BugLink: https://bugs.launchpad.net/bugs/1869672
[Impact]
* Kdump kernel can't be loaded using Linux kernel 4.15.0-65 and newer on
Bionic; kexec fails to load using the "new" kexec_file_load() syscall,
showing the following messages in dmesg:
kexec: Undefined symbol: __stack_chk_fail
kexec-bzImage64: Loading purgatory failed
* Reason for this was that backport from upstream commit b059f801a937
("x86/purgatory: Use CFLAGS_REMOVE rather than reset KBUILD_CFLAGS") makes
use of a config option guard that wasn't backported to Ubuntu 4.15.x series.
* Also, we found another related issue, an undefined memcpy() symbol, that
was related to the above patch too. We propose here a specific fix for
Bionic, in the form of the patch 1/1 in this thread.
[Test case]
* Basically the test consists in booting a signed kernel in a secure
boot environment (this is required given Ubuntu kernel is built with
CONFIG_KEXEC_VERIFY_SIG so to use kexec_file_load() we must be in a
proper signed/secure booted system). It works until 4.15.0-64, and
starts to fail after that release, until the current proposed version
4.15.0-97. We can also check kdump-tools service in the failing case,
which shows:
systemctl status kdump-tools
[...]
kdump-tools[895]: Starting kdump-tools: * Creating symlink /var/lib/kdump/vmlinuz
kdump-tools[895]: * Creating symlink /var/lib/kdump/initrd.img
kdump-tools[895]: kexec_file_load failed: Exec format error
kdump-tools[895]: * failed to load kdump kernel
[...]
* With the patch attached in the LP, it works normally again and
I was able to collect a kdump.
[Regression potential]
* Given the patch is quite simple and fixes the build of purgatory,
I think the regression potential is low. One potential regression in
future would be on backports to purgatory Makefile, making them more
difficult/prone to errors; given purgatory is a pretty untouchable code,
I consider the regression potential here to be really low.
Guilherme G. Piccoli (1):
UBUNTU: SAUCE: x86/purgatory: Fix Makefile to prevent undefined
symbols
arch/x86/purgatory/Makefile | 7 +++++--
arch/x86/purgatory/purgatory.c | 6 ++++++
arch/x86/purgatory/string.c | 13 -------------
3 files changed, 11 insertions(+), 15 deletions(-)
delete mode 100644 arch/x86/purgatory/string.c
--
2.25.2
More information about the kernel-team
mailing list