summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_object.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/vm/vm_object.c')
-rw-r--r--sys/vm/vm_object.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index 2a79dba..8756c8e 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -181,6 +181,7 @@ vm_object_zinit(void *mem, int size)
object = (vm_object_t)mem;
bzero(&object->mtx, sizeof(object->mtx));
+ VM_OBJECT_LOCK_INIT(object);
/* These are true for any object that has been freed */
object->paging_in_progress = 0;
@@ -193,8 +194,6 @@ _vm_object_allocate(objtype_t type, vm_pindex_t size, vm_object_t object)
{
int incr;
- mtx_init(&object->mtx, "vm object", NULL, MTX_DEF | MTX_DUPOK);
-
TAILQ_INIT(&object->memq);
TAILQ_INIT(&object->shadow_head);
@@ -236,12 +235,15 @@ vm_object_init(void)
mtx_init(&vm_object_list_mtx, "vm object_list", NULL, MTX_DEF);
kernel_object = &kernel_object_store;
+ VM_OBJECT_LOCK_INIT(&kernel_object_store);
_vm_object_allocate(OBJT_DEFAULT, OFF_TO_IDX(VM_MAX_KERNEL_ADDRESS - VM_MIN_KERNEL_ADDRESS),
kernel_object);
kmem_object = &kmem_object_store;
+ VM_OBJECT_LOCK_INIT(&kmem_object_store);
_vm_object_allocate(OBJT_DEFAULT, OFF_TO_IDX(VM_MAX_KERNEL_ADDRESS - VM_MIN_KERNEL_ADDRESS),
kmem_object);
+
obj_zone = uma_zcreate("VM OBJECT", sizeof (struct vm_object), NULL,
#ifdef INVARIANTS
vm_object_zdtor,
@@ -612,7 +614,6 @@ vm_object_terminate(vm_object_t object)
TAILQ_REMOVE(&vm_object_list, object, object_list);
mtx_unlock(&vm_object_list_mtx);
- mtx_destroy(&object->mtx);
wakeup(object);
/*
@@ -1611,8 +1612,6 @@ vm_object_collapse(vm_object_t object)
);
mtx_unlock(&vm_object_list_mtx);
- mtx_destroy(&backing_object->mtx);
-
uma_zfree(obj_zone, backing_object);
object_collapses++;
OpenPOWER on IntegriCloud