Skip to content

Commit

Permalink
[PATCH] lockdep: show more details about self-test failures
Browse files Browse the repository at this point in the history
Make the locking self-test failures (of 'FAILURE' type) easier to debug by
printing more information.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Ingo Molnar authored and Linus Torvalds committed Dec 7, 2006
1 parent 50cc670 commit 2ee91f1
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 1 deletion.
2 changes: 1 addition & 1 deletion include/linux/debug_locks.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ extern int debug_locks_off(void);
int __ret = 0; \
\
if (unlikely(c)) { \
if (debug_locks_off()) \
if (debug_locks_silent || debug_locks_off()) \
WARN_ON(1); \
__ret = 1; \
} \
Expand Down
3 changes: 3 additions & 0 deletions kernel/mutex-debug.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@ void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,

void debug_mutex_unlock(struct mutex *lock)
{
if (unlikely(!debug_locks))
return;

DEBUG_LOCKS_WARN_ON(lock->owner != current_thread_info());
DEBUG_LOCKS_WARN_ON(lock->magic != lock);
DEBUG_LOCKS_WARN_ON(!lock->wait_list.prev && !lock->wait_list.next);
Expand Down
2 changes: 2 additions & 0 deletions lib/locking-selftest.c
Original file line number Diff line number Diff line change
Expand Up @@ -963,7 +963,9 @@ static void dotest(void (*testcase_fn)(void), int expected, int lockclass_mask)
printk("failed|");
} else {
unexpected_testcase_failures++;

printk("FAILED|");
dump_stack();
}
} else {
testcase_successes++;
Expand Down

0 comments on commit 2ee91f1

Please sign in to comment.