diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2006-09-30 23:28:02 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-01 00:39:24 -0700 |
commit | b2e9c7d07fcc8966d6aa50a77afa66c9919bd5a8 (patch) | |
tree | 55ef4fd8db585802ac2f0185d5da36ab041b05b5 /drivers/char/sysrq.c | |
parent | 74ae3221818eaf3884ceac931ba3cd2c00045483 (diff) |
[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>
Diffstat (limited to 'drivers/char/sysrq.c')
-rw-r--r-- | drivers/char/sysrq.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c index 0ad6cb081db..6b4d4d1e343 100644 --- a/drivers/char/sysrq.c +++ b/drivers/char/sysrq.c @@ -113,6 +113,7 @@ static struct sysrq_key_op sysrq_crashdump_op = { static void sysrq_handle_reboot(int key, struct pt_regs *pt_regs, struct tty_struct *tty) { + lockdep_off(); local_irq_enable(); emergency_restart(); } |