diff options
| author | Konstantin Belousov <kib@FreeBSD.org> | 2024-12-05 22:44:08 +0000 |
|---|---|---|
| committer | Konstantin Belousov <kib@FreeBSD.org> | 2024-12-09 03:27:44 +0000 |
| commit | 6ed68e6f5d47ca30716d4e06c1452e68530970db (patch) | |
| tree | 05ba3c3d97d965b1ca825a838a863c989efb5794 /sys/vm/vm_map.c | |
| parent | 30e8252353d95cc77f787ef784942a551d3e0567 (diff) | |
Diffstat (limited to 'sys/vm/vm_map.c')
| -rw-r--r-- | sys/vm/vm_map.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index 910ebfb6dc4e..c3aa499e0dc7 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -292,9 +292,7 @@ vmspace_zinit(void *mem, int size, int flags) vm = (struct vmspace *)mem; map = &vm->vm_map; - memset(map, 0, sizeof(*map)); - mtx_init(&map->system_mtx, "vm map (system)", NULL, - MTX_DEF | MTX_DUPOK); + memset(map, 0, sizeof(*map)); /* set map->system_map = false */ sx_init(&map->lock, "vm map (user)"); PMAP_LOCK_INIT(vmspace_pmap(vm)); return (0); @@ -890,7 +888,6 @@ _vm_map_init(vm_map_t map, pmap_t pmap, vm_offset_t min, vm_offset_t max) map->header.eflags = MAP_ENTRY_HEADER; map->needs_wakeup = FALSE; - map->system_map = 0; map->pmap = pmap; map->header.end = min; map->header.start = max; @@ -908,13 +905,20 @@ _vm_map_init(vm_map_t map, pmap_t pmap, vm_offset_t min, vm_offset_t max) void vm_map_init(vm_map_t map, pmap_t pmap, vm_offset_t min, vm_offset_t max) { - _vm_map_init(map, pmap, min, max); - mtx_init(&map->system_mtx, "vm map (system)", NULL, - MTX_DEF | MTX_DUPOK); + map->system_map = false; sx_init(&map->lock, "vm map (user)"); } +void +vm_map_init_system(vm_map_t map, pmap_t pmap, vm_offset_t min, vm_offset_t max) +{ + _vm_map_init(map, pmap, min, max); + map->system_map = true; + mtx_init(&map->system_mtx, "vm map (system)", NULL, MTX_DEF | + MTX_DUPOK); +} + /* * vm_map_entry_dispose: [ internal use only ] * |
