aboutsummaryrefslogtreecommitdiff
path: root/sys/mips/mips/pmap.c
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2021-02-18 00:32:11 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2021-02-18 00:32:11 +0000
commit67932460c7b6893a637a47d98d5f29d63e92c727 (patch)
tree23ed861340f70fdc62a8048e99bb81571d4dbf1e /sys/mips/mips/pmap.c
parentfa3bd463cee5c3abeac29a83dc86eb3abfa97b06 (diff)
downloadsrc-67932460c7b6893a637a47d98d5f29d63e92c727.tar.gz
src-67932460c7b6893a637a47d98d5f29d63e92c727.zip
Add a VA_IS_CLEANMAP() macro.
This macro returns true if a provided virtual address is contained in the kernel's clean submap. In CHERI kernels, the buffer cache and transient I/O map are allocated as separate regions. Abstracting this check reduces the diff relative to FreeBSD. It is perhaps slightly more readable as well. Reviewed by: kib Obtained from: CheriBSD Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D28710
Diffstat (limited to 'sys/mips/mips/pmap.c')
-rw-r--r--sys/mips/mips/pmap.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/mips/mips/pmap.c b/sys/mips/mips/pmap.c
index 866013cbf38a..a022e7619bc5 100644
--- a/sys/mips/mips/pmap.c
+++ b/sys/mips/mips/pmap.c
@@ -2125,8 +2125,7 @@ pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot,
va &= ~PAGE_MASK;
KASSERT(va <= VM_MAX_KERNEL_ADDRESS, ("pmap_enter: toobig"));
- KASSERT((m->oflags & VPO_UNMANAGED) != 0 || va < kmi.clean_sva ||
- va >= kmi.clean_eva,
+ KASSERT((m->oflags & VPO_UNMANAGED) != 0 || !VA_IS_CLEANMAP(va),
("pmap_enter: managed mapping within the clean submap"));
if ((m->oflags & VPO_UNMANAGED) == 0)
VM_PAGE_OBJECT_BUSY_ASSERT(m);
@@ -2328,7 +2327,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m,
pt_entry_t *pte, npte;
vm_paddr_t pa;
- KASSERT(va < kmi.clean_sva || va >= kmi.clean_eva ||
+ KASSERT(!VA_IS_CLEANMAP(va) ||
(m->oflags & VPO_UNMANAGED) != 0,
("pmap_enter_quick_locked: managed mapping within the clean submap"));
rw_assert(&pvh_global_lock, RA_WLOCKED);