diff options
author | kib <kib@FreeBSD.org> | 2007-08-20 12:05:45 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2007-08-20 12:05:45 +0000 |
commit | 77766ce03fadc5a3fa344a477dd967530260bb26 (patch) | |
tree | 53ed71997e5c122e87a0dcd8769ef721892ffaa7 /sys/vm/vm_map.h | |
parent | e23c502c5b8d2dd20b3e554d80c10f046307cb67 (diff) | |
download | FreeBSD-src-77766ce03fadc5a3fa344a477dd967530260bb26.zip FreeBSD-src-77766ce03fadc5a3fa344a477dd967530260bb26.tar.gz |
Do not drop vm_map lock between doing vm_map_remove() and vm_map_insert().
For this, introduce vm_map_fixed() that does that for MAP_FIXED case.
Dropping the lock allowed for parallel thread to occupy the freed space.
Reported by: Tijl Coosemans <tijl ulyssis org>
Reviewed by: alc
Approved by: re (kensmith)
MFC after: 2 weeks
Diffstat (limited to 'sys/vm/vm_map.h')
-rw-r--r-- | sys/vm/vm_map.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/vm/vm_map.h b/sys/vm/vm_map.h index de0ab0a..fe50905 100644 --- a/sys/vm/vm_map.h +++ b/sys/vm/vm_map.h @@ -333,6 +333,7 @@ boolean_t vm_map_check_protection (vm_map_t, vm_offset_t, vm_offset_t, vm_prot_t vm_map_t vm_map_create(pmap_t, vm_offset_t, vm_offset_t); int vm_map_delete (vm_map_t, vm_offset_t, vm_offset_t); int vm_map_find (vm_map_t, vm_object_t, vm_ooffset_t, vm_offset_t *, vm_size_t, boolean_t, vm_prot_t, vm_prot_t, int); +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); |