summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_map.h
diff options
context:
space:
mode:
authortegge <tegge@FreeBSD.org>2004-08-12 20:14:49 +0000
committertegge <tegge@FreeBSD.org>2004-08-12 20:14:49 +0000
commitc5a462b4d9c262be85ebc8bcaf384b7fedf6635f (patch)
treecdd456b0a228f822484d6c67d1339fd17b892cfe /sys/vm/vm_map.h
parentf579b621f44c9fd326dcebc027de9a72f7b9e8f3 (diff)
downloadFreeBSD-src-c5a462b4d9c262be85ebc8bcaf384b7fedf6635f.zip
FreeBSD-src-c5a462b4d9c262be85ebc8bcaf384b7fedf6635f.tar.gz
The vm map lock is needed in vm_fault() after the page has been found,
to avoid later changes before pmap_enter() and vm_fault_prefault() has completed. Simplify deadlock avoidance by not blocking on vm map relookup. In collaboration with: alc
Diffstat (limited to 'sys/vm/vm_map.h')
-rw-r--r--sys/vm/vm_map.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/vm/vm_map.h b/sys/vm/vm_map.h
index 6531ff0..1d79a51 100644
--- a/sys/vm/vm_map.h
+++ b/sys/vm/vm_map.h
@@ -185,7 +185,6 @@ struct vm_map {
u_int timestamp; /* Version number */
u_char needs_wakeup;
u_char system_map; /* Am I a system map? */
- u_char infork; /* Am I in fork processing? */
vm_flags_t flags; /* flags for this vm_map */
vm_map_entry_t root; /* Root of a binary search tree */
vm_map_entry_t first_free; /* First free space hint */
@@ -341,6 +340,8 @@ void vm_map_init (struct vm_map *, 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 *);
+int vm_map_lookup_locked(vm_map_t *, vm_offset_t, vm_prot_t, vm_map_entry_t *, vm_object_t *,
+ vm_pindex_t *, vm_prot_t *, boolean_t *);
void vm_map_lookup_done (vm_map_t, vm_map_entry_t);
boolean_t vm_map_lookup_entry (vm_map_t, vm_offset_t, vm_map_entry_t *);
void vm_map_pmap_enter(vm_map_t map, vm_offset_t addr, vm_prot_t prot,
OpenPOWER on IntegriCloud