diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index 91678e4c1a0c..7a391df4bcee 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c @@ -436,7 +436,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; }