40c753993e
kexec_file_load() uses initial_boot_params in setting up the device tree
for the kernel to be loaded. Though initial_boot_params holds info about
CPUs at the time of boot, it doesn't account for hot added CPUs.
So, kexec'ing with kexec_file_load() syscall leaves the kexec'ed kernel
with inaccurate CPU info.
If kdump kernel is loaded with kexec_file_load() syscall and the system
crashes on a hot added CPU, the capture kernel hangs failing to identify
the boot CPU, with no output.
To avoid this from happening, extract current CPU info from of_root
device node and use it for setting up the fdt in kexec_file_load case.
Fixes:
|
||
---|---|---|
.. | ||
Makefile | ||
core.c | ||
core_32.c | ||
core_64.c | ||
crash.c | ||
elf_64.c | ||
file_load.c | ||
file_load_64.c | ||
ranges.c | ||
relocate_32.S |