summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2009-05-16 13:23:45 +0200
committerRalf Baechle <ralf@linux-mips.org>2009-05-20 19:53:13 +0200
commit7e9e05cad94217498e4d9bd6ef7137b4e9e7ed64 (patch)
tree67a1b4283c4b9644e000eb0326b84e9d6409e54b
parentMIPS: IP32: Fix hang on shutdown in power button interrupt handler. (diff)
downloadlinux-7e9e05cad94217498e4d9bd6ef7137b4e9e7ed64.tar.xz
linux-7e9e05cad94217498e4d9bd6ef7137b4e9e7ed64.zip
MIPS: IP22: Fix hang in power button interrupt handler
The hang was caused by the use of disable_irq() from the interrupt handler itself. Fixed by the use of disable_irq_nosync(). The issue was triggered by: commit 3aa551c9b4c40018f0e261a178e3d25478dc04a9 Author: Thomas Gleixner <tglx@linutronix.de> Date: Mon Mar 23 18:28:15 2009 +0100 genirq: add threaded interrupt handler support Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r--arch/mips/sgi-ip22/ip22-reset.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/mips/sgi-ip22/ip22-reset.c b/arch/mips/sgi-ip22/ip22-reset.c
index 4ad5c3393fd3..45b6694c2079 100644
--- a/arch/mips/sgi-ip22/ip22-reset.c
+++ b/arch/mips/sgi-ip22/ip22-reset.c
@@ -148,7 +148,7 @@ static irqreturn_t panel_int(int irq, void *dev_id)
if (sgint->istat1 & SGINT_ISTAT1_PWR) {
/* Wait until interrupt goes away */
- disable_irq(SGI_PANEL_IRQ);
+ disable_irq_nosync(SGI_PANEL_IRQ);
init_timer(&debounce_timer);
debounce_timer.function = debounce;
debounce_timer.expires = jiffies + 5;