aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/irq/chip.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index 5765aad94998..c1660194d115 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -548,13 +548,8 @@ handle_edge_irq(unsigned int irq, struct irq_desc *desc)
548 kstat_incr_irqs_this_cpu(irq, desc); 548 kstat_incr_irqs_this_cpu(irq, desc);
549 549
550 /* Start handling the irq */ 550 /* Start handling the irq */
551 if (unlikely(desc->status & IRQ_ONESHOT)) { 551 if (desc->chip->ack)
552 desc->status |= IRQ_MASKED; 552 desc->chip->ack(irq);
553 mask_ack_irq(desc, irq);
554 } else {
555 if (desc->chip->ack)
556 desc->chip->ack(irq);
557 }
558 553
559 /* Mark the IRQ currently in progress.*/ 554 /* Mark the IRQ currently in progress.*/
560 desc->status |= IRQ_INPROGRESS; 555 desc->status |= IRQ_INPROGRESS;