[tip:x86/urgent] x86: geode: Mark mfgpt irq IRQF_TIMER to prevent resume failure

tip-bot for Thomas Gleixner
2009-07-24T06:46:45Z

Commit-ID: d6c585a4342a2ff627a29f9aea77c5ed4cd76023
Gitweb: http://git.kernel.org/tip/d6c585a4342a2ff627a29f9aea77c5ed4cd76023
Author: Thomas Gleixner <tglx@linutronix.de>
AuthorDate: Fri, 24 Jul 2009 08:34:59 +0200
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitDate: Fri, 24 Jul 2009 08:42:52 +0200

x86: geode: Mark mfgpt irq IRQF_TIMER to prevent resume failure

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 mfgpt timer request its interrupt without setting the IRQF_TIMER
flag so suspend_device_irqs() disables it as well which results in a
fatal resume failure.

Adding IRQF_TIMER to the interupt flags when requesting the mrgpt
timer interrupt solves the problem.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
LKML-Reference: <new-submission>
Cc: Andres Salomon <dilinger@debian.org>
Cc: stable@kernel.org

---
arch/x86/kernel/mfgpt_32.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/kernel/mfgpt_32.c b/arch/x86/kernel/mfgpt_32.c
index 846510b..2a62d84 100644
--- a/arch/x86/kernel/mfgpt_32.c
+++ b/arch/x86/kernel/mfgpt_32.c
@@ -347,7 +347,7 @@ static irqreturn_t mfgpt_tick(int irq, void *dev_id)

static struct irqaction mfgptirq = {
.handler = mfgpt_tick,
- .flags = IRQF_DISABLED | IRQF_NOBALANCING,
+ .flags = IRQF_DISABLED | IRQF_NOBALANCING | IRQF_TIMER,
.name = "mfgpt-timer"
};