Thomas Gleixner
ef80e87d20
pinctrl/sun4i: 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: Linus Walleij <linus.walleij@linaro.org>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Chen-Yu Tsai <wens@csie.org>
Cc: Fan Wu <fwu@marvell.com>
Cc: abdoulaye berthe <berthe.ab@gmail.com>
Cc: Alexandre Courbot <acourbot@nvidia.com>
Cc: linux-gpio@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
2015-06-25 11:57:17 +02:00
..
bcm
pinctrl: cygnus: fixed incorrect GPIO-pin mapping
2015-05-19 10:45:11 +02:00
berlin
freescale
pinctrl: fsl: imx: Check for 0 config register
2015-04-07 15:11:00 +02:00
intel
pinctrl: cherryview: Read triggering type from HW if not set when requested
2015-05-12 13:54:32 +02:00
mediatek
pinctrl/mediatek: Fix race in installing chained IRQ handler
2015-06-25 11:57:04 +02:00
meson
pinctrl: Fix gpio/pin mapping for Meson8b
2015-05-19 11:40:52 +02:00
mvebu
pinctrl: mvebu: Fix mapping of pin 63 (gpo -> gpio)
2015-04-27 15:23:58 +02:00
nomadik
pinctrl: fix allmodconfig noise
2015-04-15 10:02:42 +02:00
qcom
These are some GPIO fixes for the v4.1 series:
2015-05-08 19:42:59 -07:00
samsung
pinctrl/samsung: Fix race in installing chained IRQ handler
2015-06-25 11:57:15 +02:00
sh-pfc
sh-pfc: r8a7790: add EtherAVB pin groups
2015-04-07 15:21:26 +02:00
sirf
pinctrl: sirf: move sgpio lock into state container
2015-04-09 10:16:13 +02:00
spear
sunxi
pinctrl/sun4i: Fix race in installing chained IRQ handler
2015-06-25 11:57:17 +02:00
vt8500
pinctrl: constify of_device_id array
2015-03-27 09:58:35 +01:00
core.c
pinctrl: Don't just pretend to protect pinctrl_maps, do it for real
2015-05-06 16:24:28 +02:00
core.h
pinctrl: Don't just pretend to protect pinctrl_maps, do it for real
2015-05-06 16:24:28 +02:00
devicetree.c
pinctrl: Don't just pretend to protect pinctrl_maps, do it for real
2015-05-06 16:24:28 +02:00
devicetree.h
Kconfig
pinctrl: fix allmodconfig noise
2015-04-15 10:02:42 +02:00
Makefile
pinctrl: add AMD GPIO driver support.
2015-03-18 02:02:21 +01:00
pinconf-generic.c
pinctrl: pinconf-generic: add dt node names to error messages
2015-03-27 09:53:10 +01:00
pinconf.c
pinctrl: pinconf-generic: Allow driver to specify DT params
2015-01-11 22:32:19 +01:00
pinconf.h
pinctrl: pinconf-generic: Allow driver to specify DT params
2015-01-11 22:32:19 +01:00
pinctrl-adi2-bf54x.c
pinctrl-adi2-bf60x.c
pinctrl-adi2.c
pinctrl/adi2: Fix race in installing chained IRQ handler
2015-06-25 11:57:07 +02:00
pinctrl-adi2.h
pinctrl-amd.c
Fix inconsistent spinlock of AMD GPIO driver which can be
2015-04-07 11:36:49 +02:00
pinctrl-amd.h
Fix inconsistent spinlock of AMD GPIO driver which can be
2015-04-07 11:36:49 +02:00
pinctrl-as3722.c
pinctrl: constify of_device_id array
2015-03-27 09:58:35 +01:00
pinctrl-at91.c
This is the bulk of pin control changes for the v4.1 development
2015-04-14 17:58:15 -07:00
pinctrl-at91.h
pinctrl-coh901.c
pinctrl-coh901.h
pinctrl-falcon.c
staging: drivers: pinctrl: Fixed checkpatch.pl warnings
2015-01-21 11:02:26 +01:00
pinctrl-lantiq.c
pinctrl-lantiq.h
pinctrl: lantiq: fix include guard #endif comment
2015-03-09 18:10:57 +01:00
pinctrl-palmas.c
pinctrl: constify of_device_id array
2015-03-27 09:58:35 +01:00
pinctrl-rockchip.c
pinctrl: rockchip: Only mask interrupts; never disable
2015-01-30 10:38:36 +01:00
pinctrl-single.c
pinctrl: constify of_device_id array
2015-03-27 09:58:35 +01:00
pinctrl-st.c
pinctrl/st: Fix race in installing chained IRQ handler
2015-06-25 11:57:09 +02:00
pinctrl-tb10x.c
pinctrl-tegra-xusb.c
pinctrl-tegra.c
pinctrl: tegra: support nvidia,io-hv DT property
2015-03-09 18:10:58 +01:00
pinctrl-tegra.h
pinctrl: tegra: use signed bitfields for optional fields
2015-03-19 09:20:17 +01:00
pinctrl-tegra20.c
pinctrl: tegra: some bits move between registers
2015-03-09 18:10:58 +01:00
pinctrl-tegra30.c
pinctrl: tegra: some bits move between registers
2015-03-09 18:10:58 +01:00
pinctrl-tegra114.c
pinctrl: tegra: some bits move between registers
2015-03-09 18:10:58 +01:00
pinctrl-tegra124.c
pinctrl: tegra: some bits move between registers
2015-03-09 18:10:58 +01:00
pinctrl-tegra210.c
pinctrl: tegra: add a driver for Tegra210
2015-03-09 18:10:59 +01:00
pinctrl-tz1090-pdc.c
pinctrl: constify of_device_id array
2015-03-27 09:58:35 +01:00
pinctrl-tz1090.c
pinctrl: constify of_device_id array
2015-03-27 09:58:35 +01:00
pinctrl-u300.c
pinctrl-utils.c
pinctrl-utils.h
pinctrl-xway.c
pinctrl: lantiq: remove bogus of_gpio_chip_add
2015-01-14 14:20:46 +01:00
pinctrl-zynq.c
pinctrl: hide PCONFDUMP in #ifdef
2015-01-30 14:30:59 +01:00
pinmux.c
pinmux.h