projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
bb799d3
)
mutexes: Give more informative mutex warning in the !lock->owner case
author
Chuansheng Liu
<
[email protected]
>
Wed, 4 Dec 2013 05:58:13 +0000
(13:58 +0800)
committer
Ingo Molnar
<
[email protected]
>
Tue, 17 Dec 2013 14:35:10 +0000
(15:35 +0100)
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 <
[email protected]
>
Signed-off-by: Peter Zijlstra <
[email protected]
>
Cc: Linus Torvalds <
[email protected]
>
Cc: Andrew Morton <
[email protected]
>
Cc: Thomas Gleixner <
[email protected]
>
Cc: Paul E. McKenney <
[email protected]
>
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 <
[email protected]
>
kernel/locking/mutex-debug.c
patch
|
blob
|
history
diff --git
a/kernel/locking/mutex-debug.c
b/kernel/locking/mutex-debug.c
index 7e3443fe1f48a1dbea11f7287fd3a362f1adb2a7..faf6f5b53e775eefbc7ee4ea734ff0998be68d01 100644
(file)
--- a/
kernel/locking/mutex-debug.c
+++ b/
kernel/locking/mutex-debug.c
@@
-75,7
+75,12
@@
void debug_mutex_unlock(struct mutex *lock)
return;
DEBUG_LOCKS_WARN_ON(lock->magic != lock);
- DEBUG_LOCKS_WARN_ON(lock->owner != current);
+
+ if (!lock->owner)
+ DEBUG_LOCKS_WARN_ON(!lock->owner);
+ else
+ DEBUG_LOCKS_WARN_ON(lock->owner != current);
+
DEBUG_LOCKS_WARN_ON(!lock->wait_list.prev && !lock->wait_list.next);
mutex_clear_owner(lock);
}