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 <[email protected]>
---
 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 cb86ca7..a01031e 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,
-- 
2.39.3


_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to