mutex-debug: check mutex magic before owner
Currently, the mutex debug code checks the lock->owner before lock->magic, so a corrupt mutex will most likely result in failing the owner check, rather than the magic check. This change to debug_mutex_unlock does the magic check first, so we have a better idea of what breaks. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Родитель
f26a398891
Коммит
493d35863d
|
@ -79,8 +79,8 @@ void debug_mutex_unlock(struct mutex *lock)
|
||||||
if (unlikely(!debug_locks))
|
if (unlikely(!debug_locks))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
DEBUG_LOCKS_WARN_ON(lock->owner != current_thread_info());
|
|
||||||
DEBUG_LOCKS_WARN_ON(lock->magic != lock);
|
DEBUG_LOCKS_WARN_ON(lock->magic != lock);
|
||||||
|
DEBUG_LOCKS_WARN_ON(lock->owner != current_thread_info());
|
||||||
DEBUG_LOCKS_WARN_ON(!lock->wait_list.prev && !lock->wait_list.next);
|
DEBUG_LOCKS_WARN_ON(!lock->wait_list.prev && !lock->wait_list.next);
|
||||||
DEBUG_LOCKS_WARN_ON(lock->owner != current_thread_info());
|
DEBUG_LOCKS_WARN_ON(lock->owner != current_thread_info());
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче