diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/vm/vm_map.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index b96d8ce..765126c 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -2236,8 +2236,12 @@ vm_map_delete(vm_map_t map, vm_offset_t start, vm_offset_t end) /* * Wait for wiring or unwiring of an entry to complete. + * Also wait for any system wirings to disappear on + * user maps. */ - if ((entry->eflags & MAP_ENTRY_IN_TRANSITION) != 0) { + if ((entry->eflags & MAP_ENTRY_IN_TRANSITION) != 0 || + (vm_map_pmap(map) != kernel_pmap && + vm_map_entry_system_wired_count(entry) != 0)) { unsigned int last_timestamp; vm_offset_t saved_start; vm_map_entry_t tmp_entry; |