Date: Sat, 3 Apr 2010 19:07:06 +0000 (UTC) From: Alan Cox <alc@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r206142 - in head/sys: kern vm Message-ID: <201004031907.o33J76Ck073746@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: alc Date: Sat Apr 3 19:07:05 2010 New Revision: 206142 URL: http://svn.freebsd.org/changeset/base/206142 Log: Make _vm_map_init() the one place where the vm map's pmap field is initialized. Reviewed by: kib Modified: head/sys/kern/init_main.c head/sys/vm/vm_map.c head/sys/vm/vm_map.h Modified: head/sys/kern/init_main.c ============================================================================== --- head/sys/kern/init_main.c Sat Apr 3 17:22:28 2010 (r206141) +++ head/sys/kern/init_main.c Sat Apr 3 19:07:05 2010 (r206142) @@ -510,9 +510,8 @@ proc0_init(void *dummy __unused) * proc0 is not expected to enter usermode, so there is no special * handling for sv_minuser here, like is done for exec_new_vmspace(). */ - vm_map_init(&vmspace0.vm_map, p->p_sysent->sv_minuser, - p->p_sysent->sv_maxuser); - vmspace0.vm_map.pmap = vmspace_pmap(&vmspace0); + vm_map_init(&vmspace0.vm_map, vmspace_pmap(&vmspace0), + p->p_sysent->sv_minuser, p->p_sysent->sv_maxuser); /*- * call the init and ctor for the new thread and proc Modified: head/sys/vm/vm_map.c ============================================================================== --- head/sys/vm/vm_map.c Sat Apr 3 17:22:28 2010 (r206141) +++ head/sys/vm/vm_map.c Sat Apr 3 19:07:05 2010 (r206142) @@ -126,7 +126,8 @@ static int vmspace_zinit(void *mem, int 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 m 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 m } 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"); } Modified: head/sys/vm/vm_map.h ============================================================================== --- head/sys/vm/vm_map.h Sat Apr 3 17:22:28 2010 (r206141) +++ head/sys/vm/vm_map.h Sat Apr 3 19:07:05 2010 (r206142) @@ -346,7 +346,7 @@ int vm_map_fixed(vm_map_t, vm_object_t, vm_prot_t, vm_prot_t, int); int vm_map_findspace (vm_map_t, vm_offset_t, vm_size_t, vm_offset_t *); int vm_map_inherit (vm_map_t, vm_offset_t, vm_offset_t, vm_inherit_t); -void vm_map_init (struct vm_map *, vm_offset_t, vm_offset_t); +void vm_map_init(vm_map_t, pmap_t, vm_offset_t, vm_offset_t); int vm_map_insert (vm_map_t, vm_object_t, vm_ooffset_t, vm_offset_t, vm_offset_t, vm_prot_t, vm_prot_t, int); int vm_map_lookup (vm_map_t *, vm_offset_t, vm_prot_t, vm_map_entry_t *, vm_object_t *, vm_pindex_t *, vm_prot_t *, boolean_t *);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201004031907.o33J76Ck073746>