diff options
author | alc <alc@FreeBSD.org> | 2010-04-03 19:07:05 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2010-04-03 19:07:05 +0000 |
commit | 7530e331f2073e0ef9872e64aef08abe3cfa0df8 (patch) | |
tree | d0f84b79872a1aa6f2a3e8381d9c98f65f45c3fb /sys/vm/vm_map.c | |
parent | b149db7dce4eced6e15a170a0225ceb65ac6733e (diff) | |
download | FreeBSD-src-7530e331f2073e0ef9872e64aef08abe3cfa0df8.zip FreeBSD-src-7530e331f2073e0ef9872e64aef08abe3cfa0df8.tar.gz |
Make _vm_map_init() the one place where the vm map's pmap field is
initialized.
Reviewed by: kib
Diffstat (limited to 'sys/vm/vm_map.c')
-rw-r--r-- | sys/vm/vm_map.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index 1235ec0..fe0c0f5 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -126,7 +126,8 @@ static int vmspace_zinit(void *mem, int size, int flags); static void vmspace_zfini(void *mem, int size); static int vm_map_zinit(void *mem, int ize, int flags); static void vm_map_zfini(void *mem, int size); -static void _vm_map_init(vm_map_t map, vm_offset_t min, vm_offset_t max); +static void _vm_map_init(vm_map_t map, pmap_t pmap, vm_offset_t min, + vm_offset_t max); static void vm_map_entry_dispose(vm_map_t map, vm_map_entry_t entry); #ifdef INVARIANTS static void vm_map_zdtor(void *mem, int size, void *arg); @@ -281,8 +282,7 @@ vmspace_alloc(min, max) return (NULL); } CTR1(KTR_VM, "vmspace_alloc: %p", vm); - _vm_map_init(&vm->vm_map, min, max); - vm->vm_map.pmap = vmspace_pmap(vm); /* XXX */ + _vm_map_init(&vm->vm_map, vmspace_pmap(vm), min, max); vm->vm_refcnt = 1; vm->vm_shm = NULL; vm->vm_swrss = 0; @@ -678,23 +678,22 @@ vm_map_create(pmap_t pmap, vm_offset_t min, vm_offset_t max) result = uma_zalloc(mapzone, M_WAITOK); CTR1(KTR_VM, "vm_map_create: %p", result); - _vm_map_init(result, min, max); - result->pmap = pmap; + _vm_map_init(result, pmap, min, max); return (result); } /* * Initialize an existing vm_map structure * such as that in the vmspace structure. - * The pmap is set elsewhere. */ static void -_vm_map_init(vm_map_t map, vm_offset_t min, vm_offset_t max) +_vm_map_init(vm_map_t map, pmap_t pmap, vm_offset_t min, vm_offset_t max) { map->header.next = map->header.prev = &map->header; map->needs_wakeup = FALSE; map->system_map = 0; + map->pmap = pmap; map->min_offset = min; map->max_offset = max; map->flags = 0; @@ -704,9 +703,10 @@ _vm_map_init(vm_map_t map, vm_offset_t min, vm_offset_t max) } void -vm_map_init(vm_map_t map, vm_offset_t min, vm_offset_t max) +vm_map_init(vm_map_t map, pmap_t pmap, vm_offset_t min, vm_offset_t max) { - _vm_map_init(map, min, max); + + _vm_map_init(map, pmap, min, max); mtx_init(&map->system_mtx, "system map", NULL, MTX_DEF | MTX_DUPOK); sx_init(&map->lock, "user map"); } |