Commit 68764ad9 authored by Zwane Mwaikambo's avatar Zwane Mwaikambo Committed by Linus Torvalds

[PATCH] fix alt-sysrq deadlock

__handle_sysrq was modified to do a spin_lock_irqsave so we were entering
smp_send_stop with interrupts.  So reenable interrupts to prevent the
possible smp_call_function() deadlock.

(It's still deadlocky if the sysrq handler is against called via an
interrupt from a different device, but that seems unlikely).
Signed-off-by: default avatarZwane Mwaikambo <zwane@holomorphy.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent e2901099
...@@ -98,6 +98,7 @@ static struct sysrq_key_op sysrq_unraw_op = { ...@@ -98,6 +98,7 @@ static struct sysrq_key_op sysrq_unraw_op = {
static void sysrq_handle_reboot(int key, struct pt_regs *pt_regs, static void sysrq_handle_reboot(int key, struct pt_regs *pt_regs,
struct tty_struct *tty) struct tty_struct *tty)
{ {
local_irq_enable();
machine_restart(NULL); machine_restart(NULL);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment