diff options
Diffstat (limited to 'kernel/irq/spurious.c')
-rw-r--r-- | kernel/irq/spurious.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/irq/spurious.c b/kernel/irq/spurious.c index 9d8c79b48823..b0d81aae472f 100644 --- a/kernel/irq/spurious.c +++ b/kernel/irq/spurious.c | |||
@@ -146,7 +146,9 @@ void note_interrupt(unsigned int irq, struct irq_desc *desc, | |||
146 | 146 | ||
147 | if (unlikely(irqfixup)) { | 147 | if (unlikely(irqfixup)) { |
148 | /* Don't punish working computers */ | 148 | /* Don't punish working computers */ |
149 | if ((irqfixup == 2 && irq == 0) || action_ret == IRQ_NONE) { | 149 | if ((irqfixup == 2 && ((irq == 0) || |
150 | (desc->action->flags & IRQF_IRQPOLL))) || | ||
151 | action_ret == IRQ_NONE) { | ||
150 | int ok = misrouted_irq(irq); | 152 | int ok = misrouted_irq(irq); |
151 | if (action_ret == IRQ_NONE) | 153 | if (action_ret == IRQ_NONE) |
152 | desc->irqs_unhandled -= ok; | 154 | desc->irqs_unhandled -= ok; |