debug_locks: set oops_in_progress if we will log messages.

Otherwise lock debugging messages on runqueue locks can deadlock the
system due to the wakeups performed by printk().

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
David Miller 2008-08-01 01:11:22 -07:00 committed by Ingo Molnar
parent 419ca3f135
commit e0fdace10e

View File

@ -8,6 +8,7 @@
* *
* Copyright (C) 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com> * Copyright (C) 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com>
*/ */
#include <linux/kernel.h>
#include <linux/rwsem.h> #include <linux/rwsem.h>
#include <linux/mutex.h> #include <linux/mutex.h>
#include <linux/module.h> #include <linux/module.h>
@ -37,6 +38,7 @@ int debug_locks_off(void)
{ {
if (xchg(&debug_locks, 0)) { if (xchg(&debug_locks, 0)) {
if (!debug_locks_silent) { if (!debug_locks_silent) {
oops_in_progress = 1;
console_verbose(); console_verbose();
return 1; return 1;
} }