From 2e33abc35460b9e2c2eeb1e43a0614db7bebbdb3 Mon Sep 17 00:00:00 2001 From: Wuyang Chung Date: Sun, 4 Aug 2024 22:04:12 +0800 Subject: [PATCH] riscv: fix a bug in calculating the pindex for L1 page pmap_l1_pindex(va) expands to: ((va >> L1_SHIFT) + NUL2E) Reviewed by: mhorne MFC after: 1 week Fixes: a4667e09e652 ("Convert vm_page_alloc() callers to...") Pull Request: https://github.com/freebsd/freebsd-src/pull/1360 --- sys/riscv/riscv/pmap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/riscv/riscv/pmap.c b/sys/riscv/riscv/pmap.c index c372e6f7362..4baa4948e44 100644 --- a/sys/riscv/riscv/pmap.c +++ b/sys/riscv/riscv/pmap.c @@ -1887,8 +1887,8 @@ pmap_growkernel(vm_offset_t addr) nkpg = vm_page_alloc_noobj(VM_ALLOC_INTERRUPT | VM_ALLOC_NOFREE | VM_ALLOC_WIRED | VM_ALLOC_ZERO); if (nkpg == NULL) - panic("pmap_growkernel: no memory to grow kernel"); - nkpg->pindex = kernel_vm_end >> L1_SHIFT; + panic("%s: no memory to grow kernel", __func__); + nkpg->pindex = pmap_l1_pindex(kernel_vm_end); paddr = VM_PAGE_TO_PHYS(nkpg); pn = (paddr / PAGE_SIZE); @@ -1913,8 +1913,8 @@ pmap_growkernel(vm_offset_t addr) nkpg = vm_page_alloc_noobj(VM_ALLOC_INTERRUPT | VM_ALLOC_NOFREE | VM_ALLOC_WIRED | VM_ALLOC_ZERO); if (nkpg == NULL) - panic("pmap_growkernel: no memory to grow kernel"); - nkpg->pindex = kernel_vm_end >> L2_SHIFT; + panic("%s: no memory to grow kernel", __func__); + nkpg->pindex = pmap_l2_pindex(kernel_vm_end); paddr = VM_PAGE_TO_PHYS(nkpg); pn = (paddr / PAGE_SIZE);