diff options
author | alc <alc@FreeBSD.org> | 2009-11-18 18:05:54 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2009-11-18 18:05:54 +0000 |
commit | ca67dc4da40d836cf1919f08c2fba266a28d19b2 (patch) | |
tree | 3197a0817148614fefed82c9320e8a968b09917e /sys/vm/vm_map.c | |
parent | 5df0c181df0fabff74fce8340202811f15a55b4e (diff) | |
download | FreeBSD-src-ca67dc4da40d836cf1919f08c2fba266a28d19b2.zip FreeBSD-src-ca67dc4da40d836cf1919f08c2fba266a28d19b2.tar.gz |
Simplify both the invocation and the implementation of vm_fault() for wiring
pages.
(Note: Claims made in the comments about the handling of breakpoints in
wired pages have been false for roughly a decade. This and another bug
involving breakpoints will be fixed in coming changes.)
Reviewed by: kib
Diffstat (limited to 'sys/vm/vm_map.c')
-rw-r--r-- | sys/vm/vm_map.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index 414d4e6..a77347f 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -2381,7 +2381,7 @@ vm_map_wire(vm_map_t map, vm_offset_t start, vm_offset_t end, */ vm_map_unlock(map); rv = vm_fault_wire(map, saved_start, saved_end, - user_wire, fictitious); + fictitious); vm_map_lock(map); if (last_timestamp + 1 != map->timestamp) { /* @@ -3563,7 +3563,7 @@ RetryLookup:; else prot = entry->protection; fault_type &= (VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE); - if ((fault_type & prot) != fault_type) { + if ((fault_type & prot) != fault_type || prot == VM_PROT_NONE) { vm_map_unlock_read(map); return (KERN_PROTECTION_FAILURE); } |