[PATCH v3 4/4] RISC-V: kernel image memory rang should not be excluded
luo.haiyang at zte.com.cn
luo.haiyang at zte.com.cn
Wed May 20 20:58:06 PDT 2026
From: Luo Haiyang <luo.haiyang at zte.com.cn>
On RISC-V, due to the kernel image being additionally exported
in /proc/iomem, the kernel memory range is not correctly handled
by to_be_excluded.
Signed-off-by: Luo Haiyang <luo.haiyang at zte.com.cn>
---
kexec/arch/riscv/iomem.h | 2 --
kexec/arch/riscv/kexec-riscv.c | 8 +++-----
2 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/kexec/arch/riscv/iomem.h b/kexec/arch/riscv/iomem.h
index 86da971..1ab704c 100644
--- a/kexec/arch/riscv/iomem.h
+++ b/kexec/arch/riscv/iomem.h
@@ -2,8 +2,6 @@
#define IOMEM_H
#define SYSTEM_RAM "System RAM\n"
-#define KERNEL_CODE "Kernel code\n"
-#define KERNEL_DATA "Kernel data\n"
#define KERNEL_IMAGE "Kernel image\n"
#define CRASH_KERNEL "Crash kernel\n"
#define IOMEM_RESERVED "Reserved\n"
diff --git a/kexec/arch/riscv/kexec-riscv.c b/kexec/arch/riscv/kexec-riscv.c
index a5a12a0..72fde08 100644
--- a/kexec/arch/riscv/kexec-riscv.c
+++ b/kexec/arch/riscv/kexec-riscv.c
@@ -417,12 +417,10 @@ static bool to_be_excluded(char *str, unsigned long long start, unsigned long lo
return true;
}
- if (!strncmp(str, SYSTEM_RAM, strlen(SYSTEM_RAM)) ||
- !strncmp(str, KERNEL_CODE, strlen(KERNEL_CODE)) ||
- !strncmp(str, KERNEL_DATA, strlen(KERNEL_DATA)))
- return false;
- else
+ if (!strncmp(str, IOMEM_RESERVED, strlen(IOMEM_RESERVED)))
return true;
+
+ return false;
}
int get_memory_ranges(struct memory_range **range, int *num_ranges,
--
2.27.0
罗海洋
操作系统产品部/中心研究院/系统产品_产研平台与直属
中兴通讯股份有限公司
成都市天府大道中段800号中兴大厦A座
M: +86 18215606036
E: luo.haiyang at zte.com.cn
www.zte.com.cn
------------------Original------------------
From: 罗海洋10243395
To: kexec at lists.infradead.org <kexec at lists.infradead.org>;simonhorman <horms at kernel.org>;
Cc: 张润10190954;蔡衢10034260;
Date: 2026年05月21日 11:47
Subject: [PATCH v3 0/4] kexec-tool:bug fix for crashdump load on riscv
From: Luo Haiyang <luo.haiyang at zte.com.cn>
This patchset fixes kexec-tool related to crashdump load on riscv
patch 1: crashload should use all system RAM but crash reserved memory.
patch 2: make the phys_to_virt function return the correct value.
patch 3: vmcore-dmesg accesses the address located in the bss segment,
use kernel image to creat kernel text elf header.
patch 4: due to the kernel image being additionally exported in /proc/iomem,
the kernel memory range is not correctly handled by to_be_excluded.
Changes from v2:
- use kernel image to creat kernel text elf header
- do not exclude kernel memory range
- https://lore.kernel.org/kexec/20260518145742805S2A5Zwk9KwoEtGDh4p3Pl@zte.com.cn/T/#md89827a089395745d3bd361889e4f3c490641732
Changes from v1:
- Add patch 2 and patch 3 to fix other bug
- https://lore.kernel.org/kexec/20260513171150519t11GTC14QEEV4EgIurNHM@zte.com.cn/T/#u
Luo Haiyang (4):
RISC-V: fix crashdump load memory ranges
RISCV: Fix incorrect virtual address translation in crashdump load
RISC-V: use kernel image to creat kernel text elf header
RISC-V: kernel image memory rang should not be excluded
kexec/arch/riscv/Makefile | 2 +
kexec/arch/riscv/crashdump-riscv.c | 218 +++++++++++++++++++----------
kexec/arch/riscv/iomem.h | 3 +-
kexec/arch/riscv/kexec-riscv.c | 8 +-
util_lib/elf_info.c | 41 ++++--
util_lib/include/elf_info.h | 1 +
6 files changed, 184 insertions(+), 89 deletions(-)
--
2.27.0
More information about the kexec
mailing list