diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index dc154f236a7..45e149c291b 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c @@ -396,7 +396,8 @@ handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc) * then mask it and get out of here: */ if (unlikely(!desc->action || irqd_irq_disabled(&desc->irq_data))) { - desc->istate |= IRQS_PENDING; + if (!irq_settings_is_level(desc)) + desc->istate |= IRQS_PENDING; mask_irq(desc); goto out; }