Commit 91f30a17024ff0d8345e11228af33ee938b13426
Committed by
Ingo Molnar
1 parent
bb799d3b98
Exists in
master
and in
16 other branches
mutexes: Give more informative mutex warning in the !lock->owner case
When mutex debugging is enabled and an imbalanced mutex_unlock() is called, we get the following, slightly confusing warning: [ 364.208284] DEBUG_LOCKS_WARN_ON(lock->owner != current) But in that case the warning is due to an imbalanced mutex_unlock() call, and the lock->owner is NULL - so the message is misleading. So improve the message by testing for this case specifically: DEBUG_LOCKS_WARN_ON(!lock->owner) Signed-off-by: Liu, Chuansheng <chuansheng.liu@intel.com> Signed-off-by: Peter Zijlstra <peterz@infradead.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Link: http://lkml.kernel.org/r/1386136693.3650.48.camel@cliu38-desktop-build [ Improved the changelog, changed the patch to use !lock->owner consistently. ] Signed-off-by: Ingo Molnar <mingo@kernel.org>
Showing 1 changed file with 6 additions and 1 deletions Side-by-side Diff
kernel/locking/mutex-debug.c
... | ... | @@ -75,7 +75,12 @@ |
75 | 75 | return; |
76 | 76 | |
77 | 77 | DEBUG_LOCKS_WARN_ON(lock->magic != lock); |
78 | - DEBUG_LOCKS_WARN_ON(lock->owner != current); | |
78 | + | |
79 | + if (!lock->owner) | |
80 | + DEBUG_LOCKS_WARN_ON(!lock->owner); | |
81 | + else | |
82 | + DEBUG_LOCKS_WARN_ON(lock->owner != current); | |
83 | + | |
79 | 84 | DEBUG_LOCKS_WARN_ON(!lock->wait_list.prev && !lock->wait_list.next); |
80 | 85 | mutex_clear_owner(lock); |
81 | 86 | } |