Make _vm_map_init() the one place where the vm map's pmap field is
initialized. Reviewed by: kib
This commit is contained in:
parent
a54dd632ab
commit
92351f162e
@ -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
|
||||
|
@ -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");
|
||||
}
|
||||
|
@ -346,7 +346,7 @@ int vm_map_fixed(vm_map_t, vm_object_t, vm_ooffset_t, vm_offset_t, vm_size_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 *);
|
||||
|
Loading…
x
Reference in New Issue
Block a user