From 118b567ce74af750535c5b77ab8c97b0e1a6b931 Mon Sep 17 00:00:00 2001 From: Eric DeVolder Date: Wed, 27 Sep 2023 14:11:36 -0400 Subject: crashdump/x86: set the elfcorehdr segment size for hotplug For hotplug, the elfcorehdr segment must be sized appropriately to allow a growing number of CPUs or memory regions. Use the size reported by the kernel via /sys/kernel/crash_elfcorehdr_sz. Signed-off-by: Eric DeVolder Signed-off-by: Simon Horman --- kexec/arch/i386/crashdump-x86.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/kexec/arch/i386/crashdump-x86.c b/kexec/arch/i386/crashdump-x86.c index cb86ca71..a01031e5 100644 --- a/kexec/arch/i386/crashdump-x86.c +++ b/kexec/arch/i386/crashdump-x86.c @@ -957,6 +957,14 @@ int load_crashdump_segments(struct kexec_info *info, char* mod_cmdline, memsz = bufsz; } + /* For hotplug support, override the minimum necessary size just + * computed with the value from /sys/kernel/crash_elfcorehdr_size. + * Properly align the size as well. + */ + if (do_hotplug) { + memsz = _ALIGN(elfcorehdrsz, align); + } + /* Record the location of the elfcorehdr for hotplug handling */ info->elfcorehdr = elfcorehdr = add_buffer(info, tmp, bufsz, memsz, align, min_base, -- cgit 1.2.3-korg