summaryrefslogtreecommitdiff
path: root/arch/riscv
diff options
context:
space:
mode:
authorVivian Wang <wangruikang@iscas.ac.cn>2026-04-03 19:28:47 -0600
committerPaul Walmsley <pjw@kernel.org>2026-04-04 18:42:44 -0600
commitb0217d97eeeaca199eff23102b3fa72ea8c4ddea (patch)
tree4365a2578204968350bae4df382385af68e35424 /arch/riscv
parentdd598449338212f9262424fa67e40b5643ab6c06 (diff)
riscv: mm: WARN_ON() for bad addresses in vmemmap_populate()
Similarly to the same check in arch/arm64/mm/mmu.c, in vmemmap_populate(), add a warning for start and end being outside of the range of vmemmap. Signed-off-by: Vivian Wang <wangruikang@iscas.ac.cn> Link: https://patch.msgid.link/20260309-riscv-sparsemem-vmemmap-limits-v1-1-f40efe18e3cd@iscas.ac.cn Signed-off-by: Paul Walmsley <pjw@kernel.org>
Diffstat (limited to 'arch/riscv')
-rw-r--r--arch/riscv/mm/init.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
index 257df6bd258f..2a34906b85df 100644
--- a/arch/riscv/mm/init.c
+++ b/arch/riscv/mm/init.c
@@ -1448,6 +1448,8 @@ int __meminit vmemmap_check_pmd(pmd_t *pmdp, int node,
int __meminit vmemmap_populate(unsigned long start, unsigned long end, int node,
struct vmem_altmap *altmap)
{
+ WARN_ON((start < VMEMMAP_START) || (end > VMEMMAP_END));
+
/*
* Note that SPARSEMEM_VMEMMAP is only selected for rv64 and that we
* can't use hugepage mappings for 2-level page table because in case of