summaryrefslogtreecommitdiffstats
path: root/sys/mips
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2009-05-23 18:33:22 +0000
committeralc <alc@FreeBSD.org>2009-05-23 18:33:22 +0000
commitcd8caa9b9cfb079fe39042800c8e2abad26c66b4 (patch)
tree88bd10121820dd0ac5818cf29bb50a9098b9a50c /sys/mips
parentc77b84c60d8aafd511081da151bbdaca34560bde (diff)
downloadFreeBSD-src-cd8caa9b9cfb079fe39042800c8e2abad26c66b4.zip
FreeBSD-src-cd8caa9b9cfb079fe39042800c8e2abad26c66b4.tar.gz
When a page is mapped for write access on a read fault, the PTE should be
configured to trap on a write access unless *all* of the page's dirty bits are set.
Diffstat (limited to 'sys/mips')
-rw-r--r--sys/mips/mips/pmap.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/mips/mips/pmap.c b/sys/mips/mips/pmap.c
index 2188c36..c3d6060 100644
--- a/sys/mips/mips/pmap.c
+++ b/sys/mips/mips/pmap.c
@@ -3116,7 +3116,8 @@ init_pte_prot(vm_offset_t va, vm_page_t m, vm_prot_t prot)
*/
rw = PTE_RWPAGE;
vm_page_dirty(m);
- } else if ((m->md.pv_flags & PV_TABLE_MOD) || m->dirty)
+ } else if ((m->md.pv_flags & PV_TABLE_MOD) ||
+ m->dirty == VM_PAGE_BITS_ALL)
rw = PTE_RWPAGE;
else
rw = PTE_CWPAGE;
OpenPOWER on IntegriCloud