From e953f89f903db9b34c962bbd1fa9b23d091b7756 Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Mon, 3 Jul 2006 19:54:59 +1000 Subject: [PATCH] --- yaml --- r: 31861 b: refs/heads/master c: 5a43a066b11ac2fe84cf67307f20b83bea390f83 h: refs/heads/master i: 31859: 81b1566b93671af85414fa8cffa1e2e42af373df v: v3 --- [refs] | 2 +- trunk/kernel/irq/chip.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 4db21ecd891a..a3ef6799eb79 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3e9a69275f23baec86b54febc5dad0b2fc7fb200 +refs/heads/master: 5a43a066b11ac2fe84cf67307f20b83bea390f83 diff --git a/trunk/kernel/irq/chip.c b/trunk/kernel/irq/chip.c index 54105bdfe20d..9336f2e89e40 100644 --- a/trunk/kernel/irq/chip.c +++ b/trunk/kernel/irq/chip.c @@ -261,10 +261,13 @@ handle_level_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs) * keep it masked and get out of here */ action = desc->action; - if (unlikely(!action || (desc->status & IRQ_DISABLED))) + if (unlikely(!action || (desc->status & IRQ_DISABLED))) { + desc->status |= IRQ_PENDING; goto out; + } desc->status |= IRQ_INPROGRESS; + desc->status &= ~IRQ_PENDING; spin_unlock(&desc->lock); action_ret = handle_IRQ_event(irq, regs, action);