I think i run into same sort of problem, as described here: http://lkml.org/lkml/2009/4/16/24 http://lkml.org/lkml/2009/4/14/94 (in my case it was hang after pressing O2's power button) this patch fixes it: ---- diff --git a/arch/mips/sgi-ip32/ip32-reset.c b/arch/mips/sgi-ip32/ip32-reset.c index b6cab08..667da93 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) "%s: RTC IRQ without RTC_IRQF\n", __func__); } /* Wait until interrupt goes away */ - disable_irq(MACEISA_RTC_IRQ); + disable_irq_nosync(MACEISA_RTC_IRQ); init_timer(&debounce_timer); debounce_timer.function = debounce; debounce_timer.expires = jiffies + 50; ---- tested with 2.6.30-rc5 mainline (linux-mips.org tree was also affected)