linux/drivers/gpio
Johan Hovold 00acc3dc24 gpio: fix memory leak and sleep-while-atomic
Fix memory leak and sleep-while-atomic in gpiochip_remove.

The memory leak was introduced by afa82fab5e ("gpio / ACPI: Move event
handling registration to gpiolib irqchip helpers") that moved the
release of acpi interrupt resources to gpiochip_irqchip_remove, but by
then the resources are no longer accessible as the acpi_gpio_chip has
already been freed by acpi_gpiochip_remove.

Note that this also fixes a few potential sleep-while-atomics, which has
been around since 1425052097 ("gpio: add IRQ chip helpers in gpiolib")
when the call to gpiochip_irqchip_remove while holding a spinlock was
added (a couple of irq-domain paths can end up grabbing mutexes).

Fixes: afa82fab5e ("gpio / ACPI: Move event handling registration to
gpiolib irqchip helpers")
Fixes: 1425052097 ("gpio: add IRQ chip helpers in gpiolib")
Cc: stable <stable@vger.kernel.org>

Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2015-01-14 14:25:48 +01:00
..
devres.c gpio: Support for unified device properties interface 2014-11-04 21:58:23 +01:00
gpio-74x164.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-74xx-mmio.c GPIO: Add driver for 74xx-ICs with MMIO access 2014-10-21 10:48:04 +02:00
gpio-adnp.c gpio: adnp: switch to use irqchip helpers 2014-09-02 10:44:01 +02:00
gpio-adp5520.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-adp5588.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-amd8111.c gpio: amd8111: unmap ioport on failure case 2014-10-27 16:26:35 +01:00
gpio-arizona.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-bcm-kona.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
gpio-bt8xx.c gpio: bt8xx: fix release of managed resources 2014-08-29 14:31:43 +02:00
gpio-clps711x.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-crystalcove.c gpio: crystalcove: use handle_nested_irq 2015-01-14 14:12:02 +01:00
gpio-cs5535.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
gpio-da9052.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-da9055.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-davinci.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
gpio-dln2.c gpio: add support for the Diolan DLN-2 USB GPIO driver 2014-11-10 16:30:09 +00:00
gpio-dwapb.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
gpio-em.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
gpio-ep93xx.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-f7188x.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-ge.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-generic.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-grgpio.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
gpio-ich.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-intel-mid.c gpio: intel-mid: switch to using gpiolib irqchip helpers 2014-06-19 09:31:16 +02:00
gpio-iop.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-it8761e.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-janz-ttl.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-kempld.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-ks8695.c gpio: ks8695: fix 'else should follow close brace '}'' 2014-10-02 16:07:00 +02:00
gpio-lp3943.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-lpc32xx.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-lynxpoint.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-max730x.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-max732x.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-max7300.c gpio: max7300: use devm_kzalloc() 2013-03-27 16:05:11 +01:00
gpio-max7301.c gpio: max7301: Reverting "Do not force SPI speed when using OF Platform" 2013-08-23 19:44:28 +02:00
gpio-mc9s08dz60.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-mc33880.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-mcp23s08.c gpio: mcp23s08: fix up compilation error 2014-12-12 11:22:11 +01:00
gpio-ml-ioh.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-mm-lantiq.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-moxart.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-mpc8xxx.c gpio-mpc8xxx: add mpc8xxx_gpio_set_multiple function 2014-11-27 15:01:18 +01:00
gpio-mpc5200.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-msic.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-msm-v1.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
gpio-msm-v2.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-mvebu.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
gpio-mxc.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-mxs.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
gpio-octeon.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-omap.c This is the bulk of GPIO changes for the v3.19 series: 2014-12-14 14:05:05 -08:00
gpio-palmas.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-pca953x.c gpio: pca953x: Drop deprecated DT bindings 2014-08-28 14:19:40 +02:00
gpio-pcf857x.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-pch.c gpio: pch: Build context save/restore only for PM 2014-10-02 16:07:00 +02:00
gpio-pl061.c gpio: pl061: hook request if gpio-ranges avaiable 2014-12-03 14:44:23 +01:00
gpio-pxa.c gpio-pxa: gpio0 and gpio1 support on dt 2014-07-07 12:54:28 +02:00
gpio-rc5t583.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-rcar.c gpio: rcar: Add r8a7793 and r8a7794 support 2014-11-27 15:01:19 +01:00
gpio-rdc321x.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-sa1100.c ARM: 7841/1: sa1100: remove complex GPIO interface 2013-10-29 11:01:02 +00:00
gpio-samsung.c gpio: samsung: Remove remaining check for CONFIG_S5P_GPIO_DRVSTR 2014-09-23 17:51:39 +02:00
gpio-sch311x.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-sch.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
gpio-sodaville.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-spear-spics.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
gpio-sta2x11.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-stmpe.c gpio: stmpe: add verbose debug code 2014-10-02 16:06:59 +02:00
gpio-stp-xway.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
gpio-sx150x.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-syscon.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-tb10x.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
gpio-tc3589x.c mfd: tc3589x: get rid of static base 2014-11-25 16:18:56 +00:00
gpio-tegra.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
gpio-timberdale.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-tps6586x.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-tps65910.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-tps65912.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-ts5500.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-twl4030.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-twl6040.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-tz1090-pdc.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-tz1090.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
gpio-ucb1400.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-vf610.c gpio: vf610: add gpiolib/IRQ chip driver for Vybrid 2014-10-24 14:18:05 +02:00
gpio-viperboard.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-vr41xx.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
gpio-vx855.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-wm831x.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-wm8350.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-wm8994.c gpio: remove all usage of gpio_remove retval in driver/gpio 2014-07-22 16:39:26 +02:00
gpio-xgene.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-xilinx.c gpio: Fix ngpio in gpio-xilinx driver 2014-09-24 13:37:38 +02:00
gpio-xtensa.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-zevio.c gpio: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
gpio-zynq.c PM: Merge the SET*_RUNTIME_PM_OPS() macros 2014-12-04 00:51:30 +01:00
gpiolib-acpi.c This is the bulk of GPIO changes for the v3.19 series: 2014-12-14 14:05:05 -08:00
gpiolib-legacy.c gpio: fix deferred probe detection for legacy API 2014-12-02 15:46:36 +01:00
gpiolib-of.c gpio: delete unneeded test before of_node_put 2014-08-17 09:12:35 -05:00
gpiolib-sysfs.c gpio: remove const modifier from gpiod_get_direction() 2014-11-28 14:43:36 +01:00
gpiolib.c gpio: fix memory leak and sleep-while-atomic 2015-01-14 14:25:48 +01:00
gpiolib.h gpio / ACPI: Add support for _DSD device properties 2014-11-04 21:58:22 +01:00
Kconfig This is the bulk of GPIO changes for the v3.19 series: 2014-12-14 14:05:05 -08:00
Makefile This is the bulk of GPIO changes for the v3.19 series: 2014-12-14 14:05:05 -08:00