linux/drivers/spi
Guenter Roeck 154390dcf8 spi/stmp: Fix device remove function
The call sequence spi_alloc_master/spi_register_master/spi_unregister_master
is complete; it reduces the device reference count to zero, which results in
device memory being freed. The remove function accesses the freed memory after
the call to spi_unregister_master(), _and_ it calls spi_master_put on the freed
memory.

Acquire a reference to the SPI master device and release it after cleanup is
complete (with the existing spi_master_put) to solve the problem.

Also, the device subsystem ensures that the remove function is only called once,
and resets device driver data to NULL. Remove the respective check and drop the
unnecessaary call to platform_set_drvdata().

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-27 09:37:52 -07:00
..
Kconfig spi: Master driver for NXP SC18IS602/603 2012-08-22 19:34:51 +01:00
Makefile spi: Master driver for NXP SC18IS602/603 2012-08-22 19:34:51 +01:00
spi-altera.c spi: spi-altera: Use of_match_ptr 2012-08-17 22:56:18 +01:00
spi-ath79.c spi: By default setup spi_masters with 1 chipselect and dynamics bus number 2012-05-19 23:42:08 -06:00
spi-atmel.c
spi-au1550.c
spi-bcm63xx.c spi/bcm63xx: fix clock configuration selection 2012-07-23 14:14:11 +01:00
spi-bfin5xx.c spi/spi-bfin5xx: Fix flush of last bit after each spi transfer 2012-04-27 12:20:39 -06:00
spi-bfin-sport.c spi/spi_bfin_sport: drop bits_per_word from client data 2012-04-27 12:17:25 -06:00
spi-bitbang-txrx.h
spi-bitbang.c
spi-butterfly.c
spi-coldfire-qspi.c spi: refactor spi-coldfire-qspi to use SPI queue framework. 2012-05-19 22:57:27 -06:00
spi-davinci.c spi/davinci: Fix DMA API usage in davinci 2012-03-30 16:46:22 -06:00
spi-dw-mid.c dmaengine/dma_slave: introduce inline wrappers 2012-03-21 19:20:22 +05:30
spi-dw-mmio.c
spi-dw-pci.c spi: use module_pci_driver 2012-04-10 14:11:34 -06:00
spi-dw.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
spi-dw.h
spi-ep93xx.c spi/ep93xx: clean probe/remove routines 2012-05-09 18:37:42 -06:00
spi-falcon.c SPI: MIPS: lantiq: add FALCON spi driver 2012-07-23 13:56:30 +01:00
spi-fsl-espi.c spi/devicetree: Move devicetree support code into spi directory 2012-04-13 10:21:39 -06:00
spi-fsl-lib.c spi/devicetree: Move devicetree support code into spi directory 2012-04-13 10:21:39 -06:00
spi-fsl-lib.h
spi-fsl-spi.c spi/spi-fsl-spi: reference correct pdata in fsl_spi_cs_control 2012-05-19 23:12:06 -06:00
spi-gpio.c spi/gpio: start with CS non-active 2012-07-10 15:28:56 +01:00
spi-imx.c spi/imx: use gpio_is_valid to determine if a gpio is valid 2012-07-13 11:01:46 +01:00
spi-lm70llp.c spi: By default setup spi_masters with 1 chipselect and dynamics bus number 2012-05-19 23:42:08 -06:00
spi-mpc52xx-psc.c spi/mpc52xx-psc: Avoid access to freed memory in device remove function 2012-08-22 19:26:36 +01:00
spi-mpc52xx.c spi/mpc52xx: Fix device remove function 2012-08-22 19:26:36 +01:00
spi-mpc512x-psc.c spi/mpc512x-psc: Avoid access to freed memory in device remove function 2012-08-22 19:26:36 +01:00
spi-nuc900.c spi/nuc900: Remove unnecessary memset of struct nuc900_spi 2012-02-01 17:10:52 -07:00
spi-oc-tiny.c
spi-omap2-mcspi.c spi: omap2-mcspi: At remove dont use the runtime_autosuspend calls 2012-08-22 17:58:03 +01:00
spi-omap-100k.c
spi-omap-uwire.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
spi-orion.c spi: Refactor spi-orion to use SPI framework queue. 2012-08-17 22:56:18 +01:00
spi-pl022.c spi/pl022: Add devicetree support 2012-08-22 20:00:51 +01:00
spi-ppc4xx.c spi: By default setup spi_masters with 1 chipselect and dynamics bus number 2012-05-19 23:42:08 -06:00
spi-pxa2xx-pci.c spi: use module_pci_driver 2012-04-10 14:11:34 -06:00
spi-pxa2xx.c
spi-rspi.c spi/rspi: add dmaengine support 2012-05-19 22:37:16 -06:00
spi-s3c24xx-fiq.h
spi-s3c24xx-fiq.S
spi-s3c24xx.c drivers/spi/spi-s3c24xx.c: fix error return code 2012-08-22 17:58:01 +01:00
spi-s3c64xx.c spi/s3c64xx: improve error handling 2012-08-10 12:27:47 +02:00
spi-sc18is602.c spi/sc18is602: Return -EINVAL for probe failures due to I2C function mismatch 2012-08-23 12:13:54 +01:00
spi-sh-hspi.c spi: sh-hspi: modify write/read method 2012-03-15 03:41:50 -06:00
spi-sh-msiof.c
spi-sh-sci.c
spi-sh.c spi/spi-sh: add IORESOURCE_MEM_TYPE_MASK decoding for access size 2012-03-07 19:18:45 -07:00
spi-sirf.c SPI: PRIMA2: use the newest APIs of PINCTRL to fix compiling errors 2012-05-19 23:17:31 -06:00
spi-stmp.c spi/stmp: Fix device remove function 2012-08-27 09:37:52 -07:00
spi-tegra.c spi: Updates for 3.6 2012-07-26 12:57:41 -07:00
spi-ti-ssp.c
spi-tle62x0.c
spi-topcliff-pch.c spi: By default setup spi_masters with 1 chipselect and dynamics bus number 2012-05-19 23:42:08 -06:00
spi-txx9.c
spi-xcomm.c spi: Add AD-FMCOMMS1-EBZ I2C-SPI bridge driver 2012-07-20 11:08:44 +01:00
spi-xilinx.c
spi.c spi: Add "spi:" prefix to modalias attribute of spi devices 2012-05-20 20:14:48 -06:00
spidev.c