summaryrefslogtreecommitdiffstats
path: root/sys/arm
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2011-07-15 02:11:26 +0000
committermarcel <marcel@FreeBSD.org>2011-07-15 02:11:26 +0000
commit32e26021d1e9e5bdc35e8ee08d819ed564475613 (patch)
tree3a0521e56cf0518d342c3ee03ff28e6e567d30c5 /sys/arm
parentbc6ffd0569c979f0c7192c4aab339a8b1269043d (diff)
downloadFreeBSD-src-32e26021d1e9e5bdc35e8ee08d819ed564475613.zip
FreeBSD-src-32e26021d1e9e5bdc35e8ee08d819ed564475613.tar.gz
In pmap_protect(), don't call vm_page_dirty() if the page is unmanaged.
Diffstat (limited to 'sys/arm')
-rw-r--r--sys/arm/arm/pmap.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/arm/arm/pmap.c b/sys/arm/arm/pmap.c
index f684402..d24a422 100644
--- a/sys/arm/arm/pmap.c
+++ b/sys/arm/arm/pmap.c
@@ -3242,9 +3242,12 @@ pmap_protect(pmap_t pm, vm_offset_t sva, vm_offset_t eva, vm_prot_t prot)
PTE_SYNC(ptep);
if (pg != NULL) {
- f = pmap_modify_pv(pg, pm, sva,
- PVF_WRITE, 0);
- vm_page_dirty(pg);
+ if (!(pg->flags & PG_UNMANAGED)) {
+ f = pmap_modify_pv(pg, pm, sva,
+ PVF_WRITE, 0);
+ vm_page_dirty(pg);
+ } else
+ f = 0;
} else
f = PVF_REF | PVF_EXEC;
OpenPOWER on IntegriCloud