[PATCH] sysrq: disable lockdep on reboot
SysRq : Emergency Sync
Emergency Sync complete
SysRq : Emergency Remount R/O
Emergency Remount complete
SysRq : Resetting
BUG: warning at kernel/lockdep.c:1816/trace_hardirqs_on() (Not tainted)
Call Trace:
[<ffffffff8026d56d>] show_trace+0xae/0x319
[<ffffffff8026d7ed>] dump_stack+0x15/0x17
[<ffffffff802a68d1>] trace_hardirqs_on+0xbc/0x13d
[<ffffffff803a8eec>] sysrq_handle_reboot+0x9/0x11
[<ffffffff803a8f8d>] __handle_sysrq+0x99/0x130
[<ffffffff803a903b>] handle_sysrq+0x17/0x19
[<ffffffff803a36ee>] kbd_event+0x32e/0x57d
[<ffffffff80401e35>] input_event+0x42d/0x45b
[<ffffffff804063eb>] atkbd_interrupt+0x44d/0x53d
[<ffffffff803fe5c5>] serio_interrupt+0x49/0x86
[<ffffffff803ff2a4>] i8042_interrupt+0x202/0x21a
[<ffffffff80210cf0>] handle_IRQ_event+0x2c/0x64
[<ffffffff802bfd8b>] __do_IRQ+0xaf/0x114
[<ffffffff8026ea24>] do_IRQ+0xf8/0x107
[<ffffffff8025f886>] ret_from_intr+0x0/0xf
DWARF2 unwinder stuck at ret_from_intr+0x0/0xf
Leftover inexact backtrace:
<IRQ> <EOI> [<ffffffff80258e36>] mwait_idle+0x3f/0x54
[<ffffffff8024a33a>] cpu_idle+0xa2/0xc5
[<ffffffff8026c34e>] rest_init+0x2b/0x2d
[<ffffffff809708bc>] start_kernel+0x24a/0x24c
[<ffffffff8097028b>] _sinittext+0x28b/0x292
Since we're shutting down anyway, don't bother being smart,
just turn the thing off.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Ingo Molnar <mingo@elte.hu>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c
index 0ad6cb0..6b4d4d1 100644
--- a/drivers/char/sysrq.c
+++ b/drivers/char/sysrq.c
@@ -113,6 +113,7 @@
static void sysrq_handle_reboot(int key, struct pt_regs *pt_regs,
struct tty_struct *tty)
{
+ lockdep_off();
local_irq_enable();
emergency_restart();
}