summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2010-06-03 10:11:45 +0000
committerkib <kib@FreeBSD.org>2010-06-03 10:11:45 +0000
commitfb3a28316e453c48eb1865984f66223aa1375982 (patch)
treee9b572c8f34068cf5c507ebb66a3d6767b2a65c2 /sys/vm
parentb28c332459bc90a306de5c761836159f00477364 (diff)
downloadFreeBSD-src-fb3a28316e453c48eb1865984f66223aa1375982.zip
FreeBSD-src-fb3a28316e453c48eb1865984f66223aa1375982.tar.gz
Add assertion and comment in vm_page_flag_set() describing the expectations
when the PG_WRITEABLE flag is set. Reviewed by: alc
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_page.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
index 69e9097..9d66599 100644
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -486,6 +486,14 @@ vm_page_flag_set(vm_page_t m, unsigned short bits)
{
mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+ /*
+ * For a managed page, the PG_WRITEABLE flag can be set only if
+ * the page is VPO_BUSY. Currently this flag is only set by
+ * pmap_enter().
+ */
+ KASSERT((bits & PG_WRITEABLE) == 0 ||
+ (m->flags & (PG_UNMANAGED | PG_FICTITIOUS)) != 0 ||
+ (m->oflags & VPO_BUSY) != 0, ("PG_WRITEABLE and !VPO_BUSY"));
m->flags |= bits;
}
OpenPOWER on IntegriCloud