Page MenuHomeFreeBSD

D16148.id44933.diff
No OneTemporary

D16148.id44933.diff

Index: sys/vm/vm_map.c
===================================================================
--- sys/vm/vm_map.c
+++ sys/vm/vm_map.c
@@ -3155,11 +3155,17 @@
* Unwire before removing addresses from the pmap; otherwise,
* unwiring will put the entries back in the pmap.
*/
- if (entry->wired_count != 0) {
+ if (entry->wired_count != 0)
vm_map_entry_unwire(map, entry);
- }
- pmap_remove(map->pmap, entry->start, entry->end);
+ /*
+ * Remove mappings for the pages, but only if the
+ * mappings could exist. For instance, it does not
+ * make sense to call pmap_remove() for guard entries.
+ */
+ if ((entry->eflags & MAP_ENTRY_IS_SUB_MAP) != 0 ||
+ entry->object.vm_object != NULL)
+ pmap_remove(map->pmap, entry->start, entry->end);
/*
* Delete the entry only after removing all pmap

File Metadata

Mime Type
text/plain
Expires
Sat, Feb 22, 11:34 AM (1 h, 57 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16770624
Default Alt Text
D16148.id44933.diff (831 B)

Event Timeline