diff options
author | alc <alc@FreeBSD.org> | 2012-06-16 18:56:19 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2012-06-16 18:56:19 +0000 |
commit | 6eeaee04e4175a3faa0ce3f7778a3abce0d8d9a2 (patch) | |
tree | ebf0376a21131a0f41835773afe0ddda56d3efbe /sys/vm/vm_pageout.c | |
parent | ca31dfb2b475f8026e45a8b10673993068ebc000 (diff) | |
download | FreeBSD-src-6eeaee04e4175a3faa0ce3f7778a3abce0d8d9a2.zip FreeBSD-src-6eeaee04e4175a3faa0ce3f7778a3abce0d8d9a2.tar.gz |
The page flag PGA_WRITEABLE is set and cleared exclusively by the pmap
layer, but it is read directly by the MI VM layer. This change introduces
pmap_page_is_write_mapped() in order to completely encapsulate all direct
access to PGA_WRITEABLE in the pmap layer.
Aesthetics aside, I am making this change because amd64 will likely begin
using an alternative method to track write mappings, and having
pmap_page_is_write_mapped() in place allows me to make such a change
without further modification to the MI VM layer.
As an added bonus, tidy up some nearby comments concerning page flags.
Reviewed by: kib
MFC after: 6 weeks
Diffstat (limited to 'sys/vm/vm_pageout.c')
-rw-r--r-- | sys/vm/vm_pageout.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c index fccd1dc..95ce6fd 100644 --- a/sys/vm/vm_pageout.c +++ b/sys/vm/vm_pageout.c @@ -503,7 +503,7 @@ vm_pageout_flush(vm_page_t *mc, int count, int flags, int mreq, int *prunlen, vm_page_t mt = mc[i]; KASSERT(pageout_status[i] == VM_PAGER_PEND || - (mt->aflags & PGA_WRITEABLE) == 0, + !pmap_page_is_write_mapped(mt), ("vm_pageout_flush: page %p is not write protected", mt)); switch (pageout_status[i]) { case VM_PAGER_OK: @@ -899,7 +899,7 @@ rescan0: * be updated. */ if (m->dirty != VM_PAGE_BITS_ALL && - (m->aflags & PGA_WRITEABLE) != 0) { + pmap_page_is_write_mapped(m)) { /* * Avoid a race condition: Unless write access is * removed from the page, another processor could |