svn commit: r259298 - stable/9/sys/vm
Konstantin Belousov
kib at FreeBSD.org
Fri Dec 13 06:25:44 UTC 2013
Author: kib
Date: Fri Dec 13 06:25:43 2013
New Revision: 259298
URL: http://svnweb.freebsd.org/changeset/base/259298
Log:
MFC r258366:
Add assertions to cover all places in the wiring and unwiring code
where MAP_ENTRY_IN_TRANSITION is set or cleared.
Modified:
stable/9/sys/vm/vm_map.c
Directory Properties:
stable/9/sys/ (props changed)
Modified: stable/9/sys/vm/vm_map.c
==============================================================================
--- stable/9/sys/vm/vm_map.c Fri Dec 13 06:25:08 2013 (r259297)
+++ stable/9/sys/vm/vm_map.c Fri Dec 13 06:25:43 2013 (r259298)
@@ -2289,6 +2289,9 @@ vm_map_unwire(vm_map_t map, vm_offset_t
* Mark the entry in case the map lock is released. (See
* above.)
*/
+ KASSERT((entry->eflags & MAP_ENTRY_IN_TRANSITION) == 0 &&
+ entry->wiring_thread == NULL,
+ ("owned map entry %p", entry));
entry->eflags |= MAP_ENTRY_IN_TRANSITION;
entry->wiring_thread = curthread;
/*
@@ -2357,7 +2360,9 @@ done:
}
}
KASSERT((entry->eflags & MAP_ENTRY_IN_TRANSITION) != 0,
- ("vm_map_unwire: in-transition flag missing"));
+ ("vm_map_unwire: in-transition flag missing %p", entry));
+ KASSERT(entry->wiring_thread == curthread,
+ ("vm_map_unwire: alien wire %p", entry));
entry->eflags &= ~MAP_ENTRY_IN_TRANSITION;
entry->wiring_thread = NULL;
if (entry->eflags & MAP_ENTRY_NEEDS_WAKEUP) {
@@ -2457,6 +2462,9 @@ vm_map_wire(vm_map_t map, vm_offset_t st
* Mark the entry in case the map lock is released. (See
* above.)
*/
+ KASSERT((entry->eflags & MAP_ENTRY_IN_TRANSITION) == 0 &&
+ entry->wiring_thread == NULL,
+ ("owned map entry %p", entry));
entry->eflags |= MAP_ENTRY_IN_TRANSITION;
entry->wiring_thread = curthread;
if ((entry->protection & (VM_PROT_READ | VM_PROT_EXECUTE)) == 0
More information about the svn-src-stable
mailing list