From 2bbfbc3fe286721fd1b8e1402a7b75b4cf061eab Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Thu, 3 Jun 2010 10:11:45 +0000 Subject: [PATCH] Add assertion and comment in vm_page_flag_set() describing the expectations when the PG_WRITEABLE flag is set. Reviewed by: alc --- sys/vm/vm_page.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index 69e9097c9085..9d665993f71b 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; }