linux/drivers/pci
Thomas Gleixner 2cf5a03cb2 PCI/keystone: Fix race in installing chained IRQ handler
Fix a race where a pending interrupt could be received and the handler
called before the handler's data has been setup, by converting to
irq_set_chained_handler_and_data().

Search and conversion was done with coccinelle:

@@
expression E1, E2, E3;
@@
(
-if (irq_set_chained_handler(E1, E3) != 0)
-   BUG();
|
-irq_set_chained_handler(E1, E3);
)
-irq_set_handler_data(E1, E2);
+irq_set_chained_handler_and_data(E1, E3, E2);

@@
expression E1, E2, E3;
@@
(
-if (irq_set_chained_handler(E1, E3) != 0)
-   BUG();
...
|
-irq_set_chained_handler(E1, E3);
...
)
-irq_set_handler_data(E1, E2);
+irq_set_chained_handler_and_data(E1, E3, E2);

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: Murali Karicheri <m-karicheri2@ti.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: linux-pci@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
2015-06-25 11:57:01 +02:00
..
host PCI/keystone: Fix race in installing chained IRQ handler 2015-06-25 11:57:01 +02:00
hotplug powerpc updates for 4.1 2015-04-16 13:53:32 -05:00
pcie PCI changes for the v4.1 merge window: 2015-04-13 15:45:47 -07:00
access.c
ats.c
bus.c
host-bridge.c Merge branch 'pci/misc' into next 2015-04-10 08:27:18 -05:00
hotplug-pci.c
htirq.c x86/htirq: Use hierarchical irqdomain to manage Hypertransport interrupts 2015-04-24 15:36:50 +02:00
iov.c
irq.c
Kconfig
Makefile
msi.c
of.c
pci-acpi.c PCI changes for the v4.1 merge window: 2015-04-13 15:45:47 -07:00
pci-driver.c
pci-label.c
pci-stub.c
pci-sysfs.c
pci.c Merge branch 'pci/misc' into next 2015-04-10 08:27:18 -05:00
pci.h powerpc updates for 4.1 2015-04-16 13:53:32 -05:00
probe.c Merge branches 'pci/host-exynos', 'pci/host-iproc', 'pci/host-keystone', 'pci/host-layerscape', 'pci/host-mvebu', 'pci/host-rcar' and 'pci/host-versatile' into next 2015-04-10 08:26:54 -05:00
proc.c
quirks.c x86/irq: Remove sis apic bug workaround 2015-04-24 15:36:54 +02:00
remove.c
rom.c
search.c
setup-bus.c PCI: Preserve resource size during alignment reordering 2015-06-01 17:56:32 -05:00
setup-irq.c
setup-res.c
slot.c
syscall.c
vc.c
vpd.c
xen-pcifront.c xenbus_client: Extend interface to support multi-page ring 2015-04-15 10:56:47 +01:00