aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2017-07-01 22:54:52 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2017-07-01 22:54:52 +0000
commitabf23c62cf24591894ab6d68fbe00f289bafe82a (patch)
tree10632b626fb520de745692b77116a899caac35e5 /sys
parentce3037cd785d326a9c07be28ee992cc1377090e9 (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/vm/vm_map.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c
index 083f33a98fd2..7fa320327d02 100644
--- a/sys/vm/vm_map.c
+++ b/sys/vm/vm_map.c
@@ -2712,9 +2712,6 @@ done:
}
for (entry = first_entry; entry != &map->header && entry->start < end;
entry = entry->next) {
- if ((entry->eflags & MAP_ENTRY_WIRE_SKIPPED) != 0)
- goto next_entry_done;
-
/*
* If VM_MAP_WIRE_HOLESOK was specified, an empty
* space in the unwired region could have been mapped
@@ -2722,7 +2719,7 @@ done:
* pages or draining MAP_ENTRY_IN_TRANSITION.
* Moreover, another thread could be simultaneously
* wiring this new mapping entry. Detect these cases
- * and skip any entries marked as in transition by us.
+ * and skip any entries marked as in transition not by us.
*/
if ((entry->eflags & MAP_ENTRY_IN_TRANSITION) == 0 ||
entry->wiring_thread != curthread) {
@@ -2731,6 +2728,9 @@ done:
continue;
}
+ if ((entry->eflags & MAP_ENTRY_WIRE_SKIPPED) != 0)
+ goto next_entry_done;
+
if (rv == KERN_SUCCESS) {
if (user_wire)
entry->eflags |= MAP_ENTRY_USER_WIRED;