]> git.karo-electronics.de Git - linux-beck.git/commitdiff
x86: hpet: Mark per cpu interrupts IRQF_TIMER to prevent resume failure
authorThomas Gleixner <tglx@linutronix.de>
Sun, 14 Jun 2009 15:46:01 +0000 (17:46 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Sun, 14 Jun 2009 16:24:29 +0000 (18:24 +0200)
timer interrupts are excluded from being disabled during suspend. The
clock events code manages the disabling of clock events on its own
because the timer interrupt needs to be functional before the resume
code reenables the device interrupts.

The hpet per cpu timers request their interrupt without setting the
IRQF_TIMER flag so suspend_device_irqs() disables them as well which
results in a fatal resume failure on the boot CPU.

Adding IRQF_TIMER to the interupt flags when requesting the hpet per
cpu timer interrupts solves the problem.

Reported-by: Benjamin S. <sbenni@gmx.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Benjamin S. <sbenni@gmx.de>
Cc: stable@kernel.org
arch/x86/kernel/hpet.c

index 81408b93f887116c7abf33f1ca79cf692ba97f62..dedc2bddf7a5bda84bee20adecb2e9f7d3fe615a 100644 (file)
@@ -510,7 +510,8 @@ static int hpet_setup_irq(struct hpet_dev *dev)
 {
 
        if (request_irq(dev->irq, hpet_interrupt_handler,
-                       IRQF_DISABLED|IRQF_NOBALANCING, dev->name, dev))
+                       IRQF_TIMER | IRQF_DISABLED | IRQF_NOBALANCING,
+                       dev->name, dev))
                return -1;
 
        disable_irq(dev->irq);