diff options
Diffstat (limited to 'kernel/irq')
-rw-r--r-- | kernel/irq/chip.c | 9 |
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; |