From: Luo Haiyang <[email protected]> The kdump service reported the following error:
No program header covering vaddr 0xffffffff819fa200 found kexec bug? saving vmcore-dmesg.txt failed prb stores the address of printk_rb_dynamic. Since printk_rb_dynamic resides in the bss segment and the PHDR (Program Header) does not include the bss segment address. Therefore, add the bss segment to the Kernel text. Signed-off-by: Luo Haiyang <[email protected]> --- kexec/arch/riscv/crashdump-riscv.c | 2 +- kexec/arch/riscv/iomem.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/kexec/arch/riscv/crashdump-riscv.c b/kexec/arch/riscv/crashdump-riscv.c index 6875249..a892225 100644 --- a/kexec/arch/riscv/crashdump-riscv.c +++ b/kexec/arch/riscv/crashdump-riscv.c @@ -88,7 +88,7 @@ static int iomem_range_callback(void *UNUSED(data), int UNUSED(nr), base, length, RANGE_RAM); else if (strncmp(str, KERNEL_CODE, strlen(KERNEL_CODE)) == 0) elf_info.kern_paddr_start = base; - else if (strncmp(str, KERNEL_DATA, strlen(KERNEL_DATA)) == 0) + else if (strncmp(str, KERNEL_BSS, strlen(KERNEL_BSS)) == 0) elf_info.kern_size = base + length - elf_info.kern_paddr_start; return 0; diff --git a/kexec/arch/riscv/iomem.h b/kexec/arch/riscv/iomem.h index 7671e26..fcc0d0a 100644 --- a/kexec/arch/riscv/iomem.h +++ b/kexec/arch/riscv/iomem.h @@ -4,6 +4,7 @@ #define SYSTEM_RAM "System RAM\n" #define KERNEL_CODE "Kernel code\n" #define KERNEL_DATA "Kernel data\n" +#define KERNEL_BSS "Kernel bss\n" #define CRASH_KERNEL "Crash kernel\n" #define IOMEM_RESERVED "Reserved\n" -- 2.27.0
