aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/irq/spurious.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/irq/spurious.c')
-rw-r--r--kernel/irq/spurious.c4
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;