diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index b5145654855fbe3be4f5588a1318573f15e8bef6..c9c0601f0615a1eaef8e3c425c61662395987c8e 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c @@ -513,6 +513,10 @@ handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc) mask_irq(desc); goto out; } + + if (desc->istate & IRQS_ONESHOT) + mask_irq(desc); + preflow_handler(desc); handle_irq_event(desc);