diff options
author | Björn Töpel <bjorn@rivosinc.com> | 2025-04-09 21:21:27 +0300 |
---|---|---|
committer | Alexandre Ghiti <alexghiti@rivosinc.com> | 2025-04-14 16:07:07 +0300 |
commit | e94eb7ea6f206e229791761a5fdf9389f8dbd183 (patch) | |
tree | a310912c1278b935197db9db1d44b92f449c5108 /tools/perf/scripts/python/intel-pt-events.py | |
parent | 441016056010e50cee18633b9dc125b24feeb74d (diff) | |
download | linux-e94eb7ea6f206e229791761a5fdf9389f8dbd183.tar.xz |
riscv: Properly export reserved regions in /proc/iomem
The /proc/iomem represents the kernel's memory map. Regions marked
with "Reserved" tells the user that the range should not be tampered
with. Kexec-tools, when using the older kexec_load syscall relies on
the "Reserved" regions to build the memory segments, that will be the
target of the new kexec'd kernel.
The RISC-V port tries to expose all reserved regions to userland, but
some regions were not properly exposed: Regions that resided in both
the "regular" and reserved memory block, e.g. the EFI Memory Map. A
missing entry could result in reserved memory being overwritten.
It turns out, that arm64, and loongarch had a similar issue a while
back:
commit d91680e687f4 ("arm64: Fix /proc/iomem for reserved but not memory regions")
commit 50d7ba36b916 ("arm64: export memblock_reserve()d regions via /proc/iomem")
Similar to the other ports, resolve the issue by splitting the regions
in an arch initcall, since we need a working allocator.
Fixes: ffe0e5261268 ("RISC-V: Improve init_resources()")
Signed-off-by: Björn Töpel <bjorn@rivosinc.com>
Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Link: https://lore.kernel.org/r/20250409182129.634415-1-bjorn@kernel.org
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Diffstat (limited to 'tools/perf/scripts/python/intel-pt-events.py')
0 files changed, 0 insertions, 0 deletions