diff options
author | Alan Cox <alc@FreeBSD.org> | 2002-07-12 23:20:06 +0000 |
---|---|---|
committer | Alan Cox <alc@FreeBSD.org> | 2002-07-12 23:20:06 +0000 |
commit | 93bc4879e6332c1564d60c22308b0ffa2e63cc99 (patch) | |
tree | 43564014c2663f3a14063b7bb872eaf927d40114 /sys/vm/vm_map.c | |
parent | 3956b023450a439b1b97f0ac2f965a31bd494da8 (diff) | |
download | src-93bc4879e6332c1564d60c22308b0ffa2e63cc99.tar.gz src-93bc4879e6332c1564d60c22308b0ffa2e63cc99.zip |
o Assert GIANT_REQUIRED on system maps in _vm_map_lock(),
_vm_map_lock_read(), and _vm_map_trylock(). Submitted by: tegge
o Remove GIANT_REQUIRED from kmem_alloc_wait() and kmem_free_wakeup().
(This clears the way for exec_map accesses to move outside of Giant.
The exec_map is not a system map.)
o Remove some premature MPSAFE comments.
Reviewed by: tegge
Notes
Notes:
svn path=/head/; revision=99893
Diffstat (limited to 'sys/vm/vm_map.c')
-rw-r--r-- | sys/vm/vm_map.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index 21b91d0ac686..6b107db3f1de 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -360,6 +360,8 @@ _vm_map_lock(vm_map_t map, const char *file, int line) { int error; + if (map->system_map) + GIANT_REQUIRED; error = lockmgr(&map->lock, LK_EXCLUSIVE, NULL, curthread); KASSERT(error == 0, ("%s: failed to get lock", __func__)); map->timestamp++; @@ -377,6 +379,8 @@ _vm_map_lock_read(vm_map_t map, const char *file, int line) { int error; + if (map->system_map) + GIANT_REQUIRED; error = lockmgr(&map->lock, LK_EXCLUSIVE, NULL, curthread); KASSERT(error == 0, ("%s: failed to get lock", __func__)); } @@ -393,6 +397,8 @@ _vm_map_trylock(vm_map_t map, const char *file, int line) { int error; + if (map->system_map) + GIANT_REQUIRED; error = lockmgr(&map->lock, LK_EXCLUSIVE | LK_NOWAIT, NULL, curthread); return (error == 0); } |