summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_page.c
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2002-12-15 00:06:02 +0000
committeralc <alc@FreeBSD.org>2002-12-15 00:06:02 +0000
commit339c5b2dab81223a690db21a22858336229504c4 (patch)
tree5683e168325f1d8f219a32d0c26cc4f513459618 /sys/vm/vm_page.c
parent13f890f8add024bf9060812b6ae227667e4cf1aa (diff)
downloadFreeBSD-src-339c5b2dab81223a690db21a22858336229504c4.zip
FreeBSD-src-339c5b2dab81223a690db21a22858336229504c4.tar.gz
Assert that the page queues lock is held in vm_page_unhold(),
vm_page_remove(), and vm_page_free_toq().
Diffstat (limited to 'sys/vm/vm_page.c')
-rw-r--r--sys/vm/vm_page.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
index 4cc9e18..ee23feb 100644
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -363,7 +363,8 @@ vm_page_hold(vm_page_t mem)
void
vm_page_unhold(vm_page_t mem)
{
- GIANT_REQUIRED;
+
+ mtx_assert(&vm_page_queue_mtx, MA_OWNED);
--mem->hold_count;
KASSERT(mem->hold_count >= 0, ("vm_page_unhold: hold count < 0!!!"));
if (mem->hold_count == 0 && mem->queue == PQ_HOLD)
@@ -622,7 +623,7 @@ vm_page_remove(vm_page_t m)
vm_page_t root;
GIANT_REQUIRED;
-
+ mtx_assert(&vm_page_queue_mtx, MA_OWNED);
if (m->object == NULL)
return;
@@ -1061,6 +1062,7 @@ vm_page_free_toq(vm_page_t m)
vm_object_t object = m->object;
GIANT_REQUIRED;
+ mtx_assert(&vm_page_queue_mtx, MA_OWNED);
s = splvm();
cnt.v_tfree++;
OpenPOWER on IntegriCloud