Merge existing fixes from spi/for-5.15
[linux-2.6-microblaze.git] / drivers / irqchip / irq-mvebu-sei.c
index 3a7b7a7..4ecef6d 100644 (file)
@@ -337,17 +337,12 @@ static void mvebu_sei_handle_cascade_irq(struct irq_desc *desc)
                irqmap = readl_relaxed(sei->base + GICP_SECR(idx));
                for_each_set_bit(bit, &irqmap, SEI_IRQ_COUNT_PER_REG) {
                        unsigned long hwirq;
-                       unsigned int virq;
+                       int err;
 
                        hwirq = idx * SEI_IRQ_COUNT_PER_REG + bit;
-                       virq = irq_find_mapping(sei->sei_domain, hwirq);
-                       if (likely(virq)) {
-                               generic_handle_irq(virq);
-                               continue;
-                       }
-
-                       dev_warn(sei->dev,
-                                "Spurious IRQ detected (hwirq %lu)\n", hwirq);
+                       err = generic_handle_domain_irq(sei->sei_domain, hwirq);
+                       if (unlikely(err))
+                               dev_warn(sei->dev, "Spurious IRQ detected (hwirq %lu)\n", hwirq);
                }
        }