summaryrefslogtreecommitdiffstats
path: root/sys/powerpc
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2010-06-05 18:20:09 +0000
committeralc <alc@FreeBSD.org>2010-06-05 18:20:09 +0000
commitb11ca4bc203aade138ee2578a7ac84661dcb5cb0 (patch)
tree91a10245204cfc5aa4299b7073aef191057b7b38 /sys/powerpc
parente725fc3e76f91c848117ba682217db115abb350f (diff)
downloadFreeBSD-src-b11ca4bc203aade138ee2578a7ac84661dcb5cb0.zip
FreeBSD-src-b11ca4bc203aade138ee2578a7ac84661dcb5cb0.tar.gz
Don't set PG_WRITEABLE in pmap_enter() unless the page is managed.
Correct a typo in a nearby comment on sparc64.
Diffstat (limited to 'sys/powerpc')
-rw-r--r--sys/powerpc/booke/pmap.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/powerpc/booke/pmap.c b/sys/powerpc/booke/pmap.c
index ca48adc..4bc5e93 100644
--- a/sys/powerpc/booke/pmap.c
+++ b/sys/powerpc/booke/pmap.c
@@ -1596,7 +1596,8 @@ mmu_booke_enter_locked(mmu_t mmu, pmap_t pmap, vm_offset_t va, vm_page_t m,
if (!su)
flags |= PTE_UW;
- vm_page_flag_set(m, PG_WRITEABLE);
+ if ((flags & PTE_MANAGED) != 0)
+ vm_page_flag_set(m, PG_WRITEABLE);
} else {
/* Handle modified pages, sense modify status. */
@@ -1662,7 +1663,8 @@ mmu_booke_enter_locked(mmu_t mmu, pmap_t pmap, vm_offset_t va, vm_page_t m,
if (!su)
flags |= PTE_UW;
- vm_page_flag_set(m, PG_WRITEABLE);
+ if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0)
+ vm_page_flag_set(m, PG_WRITEABLE);
}
if (prot & VM_PROT_EXECUTE) {
OpenPOWER on IntegriCloud