It appears that the defect outlined in 
9c15eeb5362c4 ("genirq: Allow
fasteoi handler to resend interrupts on concurrent handling") also
affects some other less stellar MSI controllers, this time using
the handle_simple_irq() flow.
Teach this flow about irqd_needs_resend_when_in_progress(). Given
the invasive nature of this workaround, only this flow is updated.
Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20250708173404.1278635-2-maz@kernel.org
 {
        guard(raw_spinlock)(&desc->lock);
 
-       if (!irq_can_handle(desc))
+       if (!irq_can_handle_pm(desc)) {
+               if (irqd_needs_resend_when_in_progress(&desc->irq_data))
+                       desc->istate |= IRQS_PENDING;
+               return;
+       }
+
+       if (!irq_can_handle_actions(desc))
                return;
 
        kstat_incr_irqs_this_cpu(desc);