diff options
| author | Andrew Randrianasulu <randrik_a@yahoo.com> | 2009-05-14 14:29:27 -0400 | 
|---|---|---|
| committer | Ralf Baechle <ralf@linux-mips.org> | 2009-05-20 13:53:13 -0400 | 
| commit | 950312ce22696ddfa42a957bdadaa9c24151e679 (patch) | |
| tree | 2ab298930f879d157c6fe317953c2a33f7a95259 | |
| parent | 279e677faa775ad16e75c32e1bf4a37f8158bc61 (diff) | |
MIPS: IP32: Fix hang on shutdown 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-ip32/ip32-reset.c | 2 | 
1 files changed, 1 insertions, 1 deletions
| diff --git a/arch/mips/sgi-ip32/ip32-reset.c b/arch/mips/sgi-ip32/ip32-reset.c index b6cab089561e..667da932b7b2 100644 --- a/arch/mips/sgi-ip32/ip32-reset.c +++ b/arch/mips/sgi-ip32/ip32-reset.c | |||
| @@ -145,7 +145,7 @@ static irqreturn_t ip32_rtc_int(int irq, void *dev_id) | |||
| 145 | "%s: RTC IRQ without RTC_IRQF\n", __func__); | 145 | "%s: RTC IRQ without RTC_IRQF\n", __func__); | 
| 146 | } | 146 | } | 
| 147 | /* Wait until interrupt goes away */ | 147 | /* Wait until interrupt goes away */ | 
| 148 | disable_irq(MACEISA_RTC_IRQ); | 148 | disable_irq_nosync(MACEISA_RTC_IRQ); | 
| 149 | init_timer(&debounce_timer); | 149 | init_timer(&debounce_timer); | 
| 150 | debounce_timer.function = debounce; | 150 | debounce_timer.function = debounce; | 
| 151 | debounce_timer.expires = jiffies + 50; | 151 | debounce_timer.expires = jiffies + 50; | 
