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 *);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to