diff options
author | Andrew Morton <akpm@linux-foundation.org> | 2008-09-11 20:02:58 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-09-12 05:11:21 -0400 |
commit | 53b9d87f41a3d8838210ad7cdef02d814817ce85 (patch) | |
tree | 3beaebff32fdfc4daf5e2e6c3f02a966797f0c28 /include/linux/debug_locks.h | |
parent | 1d18ef489509314506328b9e464dd47c24c1d68f (diff) |
lock debug: sit tight when we are already in a panic
in:
> http://bugzilla.kernel.org/show_bug.cgi?id=11543
The panic code called the kexec code which called mutex_trylock() which
called spin_lock_mutex() which then stupidly went and blurted a load of
debug stuff because of in_interrupt().
Keep the lock debug code from escallating an already crappy situation.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/linux/debug_locks.h')
-rw-r--r-- | include/linux/debug_locks.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/debug_locks.h b/include/linux/debug_locks.h index 4aaa4afb1cb9..096476f1fb35 100644 --- a/include/linux/debug_locks.h +++ b/include/linux/debug_locks.h | |||
@@ -17,7 +17,7 @@ extern int debug_locks_off(void); | |||
17 | ({ \ | 17 | ({ \ |
18 | int __ret = 0; \ | 18 | int __ret = 0; \ |
19 | \ | 19 | \ |
20 | if (unlikely(c)) { \ | 20 | if (!oops_in_progress && unlikely(c)) { \ |
21 | if (debug_locks_off() && !debug_locks_silent) \ | 21 | if (debug_locks_off() && !debug_locks_silent) \ |
22 | WARN_ON(1); \ | 22 | WARN_ON(1); \ |
23 | __ret = 1; \ | 23 | __ret = 1; \ |