PCI/MSI: pci-xgene-msi: Consolidate chained IRQ handler install/remove
authorThomas Gleixner <tglx@linutronix.de>
Fri, 31 Jul 2015 20:12:29 +0000 (22:12 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Sat, 1 Aug 2015 06:07:23 +0000 (08:07 +0200)
Chained irq handlers usually set up handler data as well. We now have
a function to set both under irq_desc->lock. Replace the two calls
with one.

Search and conversion was done with coccinelle.

Reported-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Julia Lawall <Julia.Lawall@lip6.fr>
Cc: Duc Dang <dhdang@apm.com>
drivers/pci/host/pci-xgene-msi.c

index ec5a14b..23456b9 100644 (file)
@@ -368,10 +368,8 @@ static int xgene_msi_remove(struct platform_device *pdev)
 
        for (i = 0; i < NR_HW_IRQS; i++) {
                virq = msi->msi_groups[i].gic_irq;
-               if (virq != 0) {
-                       irq_set_chained_handler(virq, NULL);
-                       irq_set_handler_data(virq, NULL);
-               }
+               if (virq != 0)
+                       irq_set_chained_handler_and_data(virq, NULL, NULL);
        }
        kfree(msi->msi_groups);
 
@@ -421,8 +419,8 @@ static int xgene_msi_hwirq_alloc(unsigned int cpu)
                }
 
                if (err) {
-                       irq_set_chained_handler(msi_group->gic_irq, NULL);
-                       irq_set_handler_data(msi_group->gic_irq, NULL);
+                       irq_set_chained_handler_and_data(msi_group->gic_irq,
+                                                        NULL, NULL);
                        return err;
                }
        }
@@ -441,8 +439,8 @@ static void xgene_msi_hwirq_free(unsigned int cpu)
                if (!msi_group->gic_irq)
                        continue;
 
-               irq_set_chained_handler(msi_group->gic_irq, NULL);
-               irq_set_handler_data(msi_group->gic_irq, NULL);
+               irq_set_chained_handler_and_data(msi_group->gic_irq, NULL,
+                                                NULL);
        }
 }