svn commit: r207551 - head/sys/vm
Alan Cox
alc at FreeBSD.org
Mon May 3 07:00:50 UTC 2010
Author: alc
Date: Mon May 3 07:00:50 2010
New Revision: 207551
URL: http://svn.freebsd.org/changeset/base/207551
Log:
Assert that the page queues lock is held in vm_page_remove() and
vm_page_unwire() only if the page is managed, i.e., pageable.
Modified:
head/sys/vm/vm_page.c
Modified: head/sys/vm/vm_page.c
==============================================================================
--- head/sys/vm/vm_page.c Mon May 3 06:26:52 2010 (r207550)
+++ head/sys/vm/vm_page.c Mon May 3 07:00:50 2010 (r207551)
@@ -790,6 +790,8 @@ vm_page_remove(vm_page_t m)
vm_object_t object;
vm_page_t root;
+ if ((m->flags & PG_UNMANAGED) == 0)
+ mtx_assert(&vm_page_queue_mtx, MA_OWNED);
if ((object = m->object) == NULL)
return;
VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
@@ -797,7 +799,6 @@ vm_page_remove(vm_page_t m)
m->oflags &= ~VPO_BUSY;
vm_page_flash(m);
}
- mtx_assert(&vm_page_queue_mtx, MA_OWNED);
/*
* Now remove from the object's list of backed pages.
@@ -1586,7 +1587,8 @@ void
vm_page_unwire(vm_page_t m, int activate)
{
- mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+ if ((m->flags & PG_UNMANAGED) == 0)
+ mtx_assert(&vm_page_queue_mtx, MA_OWNED);
if (m->flags & PG_FICTITIOUS)
return;
if (m->wire_count > 0) {
More information about the svn-src-all
mailing list