summaryrefslogtreecommitdiff
path: root/vm/vm_resident.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm/vm_resident.c')
-rw-r--r--vm/vm_resident.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/vm/vm_resident.c b/vm/vm_resident.c
index 8b10e00..5959989 100644
--- a/vm/vm_resident.c
+++ b/vm/vm_resident.c
@@ -274,6 +274,7 @@ void vm_page_insert(
vm_object_t object,
vm_offset_t offset)
{
+ assert(have_vm_object_lock(object));
VM_PAGE_CHECK(mem);
if (mem->tabled)
@@ -337,6 +338,7 @@ void vm_page_replace(
struct vm_page *old;
void **slot;
+ assert(have_vm_object_lock(object));
VM_PAGE_CHECK(mem);
if (mem->tabled)
@@ -393,6 +395,7 @@ void vm_page_replace(
void vm_page_remove(
vm_page_t mem)
{
+ assert(have_vm_object_lock(mem->object));
assert(mem->tabled);
VM_PAGE_CHECK(mem);
@@ -425,6 +428,7 @@ vm_page_t vm_page_lookup(
vm_object_t object,
vm_offset_t offset)
{
+ assert(have_vm_object_lock(object));
return rdxtree_lookup(&object->memt, offset_key(offset));
}
@@ -441,6 +445,8 @@ void vm_page_rename(
vm_object_t new_object,
vm_offset_t new_offset)
{
+ assert(have_vm_object_lock(new_object));
+
/*
* Changes to mem->object require the page lock because
* the pageout daemon uses that lock to get the object.
@@ -534,6 +540,8 @@ boolean_t vm_page_convert(
struct vm_page *real_m, *fict_m, *old;
void **slot;
+ assert(have_vm_object_lock((*mp)->object));
+
fict_m = *mp;
assert(fict_m->fictitious);
@@ -731,6 +739,8 @@ vm_page_t vm_page_alloc(
{
vm_page_t mem;
+ assert(have_vm_object_lock(object));
+
mem = vm_page_grab(!object->internal);
if (mem == VM_PAGE_NULL)
return VM_PAGE_NULL;
@@ -753,6 +763,9 @@ vm_page_t vm_page_alloc(
void vm_page_free(
vm_page_t mem)
{
+ assert(have_vm_object_lock(mem->object));
+ assert(have_vm_page_queue_lock());
+
if (mem->tabled)
vm_page_remove(mem);
VM_PAGE_QUEUES_REMOVE(mem);
@@ -793,6 +806,8 @@ void vm_page_free(
void vm_page_wire(
vm_page_t mem)
{
+ assert(have_vm_object_lock(mem->object));
+ assert(have_vm_page_queue_lock());
VM_PAGE_CHECK(mem);
if (mem->wire_count == 0) {
@@ -814,6 +829,8 @@ void vm_page_wire(
void vm_page_unwire(
vm_page_t mem)
{
+ assert(have_vm_object_lock(mem->object));
+ assert(have_vm_page_queue_lock());
VM_PAGE_CHECK(mem);
if (--mem->wire_count == 0) {
@@ -837,6 +854,7 @@ void vm_page_unwire(
void vm_page_deactivate(
vm_page_t m)
{
+ assert(have_vm_page_queue_lock());
VM_PAGE_CHECK(m);
/*
@@ -871,6 +889,7 @@ void vm_page_deactivate(
void vm_page_activate(
vm_page_t m)
{
+ assert(have_vm_page_queue_lock());
VM_PAGE_CHECK(m);
if (m->inactive) {