summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Cox <alc@FreeBSD.org>2002-11-18 01:36:09 +0000
committerAlan Cox <alc@FreeBSD.org>2002-11-18 01:36:09 +0000
commit49115f907051188c7bf9c9086e4a80e59fa9857c (patch)
treea9ab6f95276a519036c2b2557d990734da0f030b
parent4919e8cbe94ee9c900b158e254f61fbc5a2ecda9 (diff)
Notes
-rw-r--r--sys/alpha/alpha/pmap.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/alpha/alpha/pmap.c b/sys/alpha/alpha/pmap.c
index 24d6a0a3667b..5da92e538f28 100644
--- a/sys/alpha/alpha/pmap.c
+++ b/sys/alpha/alpha/pmap.c
@@ -2734,7 +2734,9 @@ pmap_changebit(vm_page_t m, int bit, boolean_t setem)
int changed;
int s;
- if (!pmap_initialized || (m->flags & PG_FICTITIOUS))
+ if (!pmap_initialized || (m->flags & PG_FICTITIOUS) ||
+ (!setem && bit == (PG_UWE|PG_KWE) &&
+ (m->flags & PG_WRITEABLE) == 0))
return;
s = splvm();
@@ -2776,6 +2778,8 @@ pmap_changebit(vm_page_t m, int bit, boolean_t setem)
if (changed)
pmap_invalidate_page(pv->pv_pmap, pv->pv_va);
}
+ if (!setem && bit == (PG_UWE|PG_KWE))
+ vm_page_flag_clear(m, PG_WRITEABLE);
splx(s);
}