Page MenuHomeFreeBSD

D31460.id93461.diff
No OneTemporary

D31460.id93461.diff

diff --git a/sys/riscv/riscv/pmap.c b/sys/riscv/riscv/pmap.c
--- a/sys/riscv/riscv/pmap.c
+++ b/sys/riscv/riscv/pmap.c
@@ -1348,7 +1348,10 @@
retry:
l1 = pmap_l1(pmap, va);
- if (l1 != NULL && (pmap_load(l1) & PTE_RWX) == 0) {
+ if (l1 != NULL && (pmap_load(l1) & PTE_V) != 0) {
+ KASSERT((pmap_load(l1) & PTE_RWX) == 0,
+ ("%s: L1 entry %#lx for VA %#lx is a leaf", __func__,
+ pmap_load(l1), va));
/* Add a reference to the L2 page. */
l2pg = PHYS_TO_VM_PAGE(PTE_TO_PHYS(pmap_load(l1)));
l2pg->ref_count++;

File Metadata

Mime Type
text/plain
Expires
Sun, Dec 21, 2:05 AM (14 h, 52 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27104848
Default Alt Text
D31460.id93461.diff (535 B)

Event Timeline