summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/aim
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2010-06-11 15:49:39 +0000
committeralc <alc@FreeBSD.org>2010-06-11 15:49:39 +0000
commit6a3535c3fa18af41cdca53d39cc5cfa30c33b489 (patch)
tree550ff47684da099980515a2516e246ffd5339741 /sys/powerpc/aim
parent36542ba7ce7973f7b9df1cef37c89721a3f722a8 (diff)
downloadFreeBSD-src-6a3535c3fa18af41cdca53d39cc5cfa30c33b489.zip
FreeBSD-src-6a3535c3fa18af41cdca53d39cc5cfa30c33b489.tar.gz
Relax one of the new assertions in pmap_enter() a little. Specifically,
allow pmap_enter() to be performed on an unmanaged page that doesn't have VPO_BUSY set. Having VPO_BUSY set really only matters for managed pages. (See, for example, pmap_remove_write().)
Diffstat (limited to 'sys/powerpc/aim')
-rw-r--r--sys/powerpc/aim/mmu_oea.c3
-rw-r--r--sys/powerpc/aim/mmu_oea64.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/sys/powerpc/aim/mmu_oea.c b/sys/powerpc/aim/mmu_oea.c
index b2663be..df52b62 100644
--- a/sys/powerpc/aim/mmu_oea.c
+++ b/sys/powerpc/aim/mmu_oea.c
@@ -1102,7 +1102,8 @@ moea_enter_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot,
if (pmap_bootstrapped)
mtx_assert(&vm_page_queue_mtx, MA_OWNED);
PMAP_LOCK_ASSERT(pmap, MA_OWNED);
- KASSERT((m->oflags & VPO_BUSY) != 0 || VM_OBJECT_LOCKED(m->object),
+ KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) != 0 ||
+ (m->oflags & VPO_BUSY) != 0 || VM_OBJECT_LOCKED(m->object),
("moea_enter_locked: page %p is not busy", m));
/* XXX change the pvo head for fake pages */
diff --git a/sys/powerpc/aim/mmu_oea64.c b/sys/powerpc/aim/mmu_oea64.c
index 62d85ce..8672ab2 100644
--- a/sys/powerpc/aim/mmu_oea64.c
+++ b/sys/powerpc/aim/mmu_oea64.c
@@ -1235,7 +1235,8 @@ moea64_enter_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot,
if (pmap_bootstrapped)
mtx_assert(&vm_page_queue_mtx, MA_OWNED);
PMAP_LOCK_ASSERT(pmap, MA_OWNED);
- KASSERT((m->oflags & VPO_BUSY) != 0 || VM_OBJECT_LOCKED(m->object),
+ KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) != 0 ||
+ (m->oflags & VPO_BUSY) != 0 || VM_OBJECT_LOCKED(m->object),
("moea64_enter_locked: page %p is not busy", m));
/* XXX change the pvo head for fake pages */
OpenPOWER on IntegriCloud