[PATCH 0/2] riscv: fix debug_pagealloc

From: Nam Cao
Date: Wed May 15 2024 - 01:51:06 EST


The debug_pagealloc feature is not functional on RISCV. With this feature
enabled (CONFIG_DEBUG_PAGEALLOC=y and debug_pagealloc=on), kernel crashes
early during boot.

QEMU command that can reproduce this problem:
qemu-system-riscv64 -machine virt \
-kernel Image \
-append "console=ttyS0 root=/dev/vda debug_pagealloc=on" \
-nographic \
-drive "file=root.img,format=raw,id=hd0" \
-device virtio-blk-device,drive=hd0 \
-m 4G \

This series makes debug_pagealloc functional.

Nam Cao (2):
riscv: force PAGE_SIZE linear mapping if debug_pagealloc is enabled
riscv: rewrite __kernel_map_pages() to fix sleeping in invalid context

arch/riscv/mm/init.c | 3 +++
arch/riscv/mm/pageattr.c | 28 ++++++++++++++++++++++------
2 files changed, 25 insertions(+), 6 deletions(-)

--
2.39.2