1
linux/drivers/spi
Russell King 10aa5a35e3 SPI: fix over-eager devm_xxx() conversion
1a77b127ae (OMAP : SPI : use devm_* functions) converted the SPI
device controller state to use devm_kzalloc().  Unfortunately, this
is used against an unbound struct device, which results in the
following when the device is bound to its driver:

------------[ cut here ]------------
WARNING: at /home/rmk/git/linux-rmk/drivers/base/dd.c:257 driver_probe_device+0x78/0x21c()
Modules linked in:
Backtrace:
[<c0017d0c>] (dump_backtrace+0x0/0x10c) from [<c033e208>] (dump_stack+0x18/0x1c) r7:00000000 r6:c01ff28c r5:c040050c r4:00000101
[<c033e1f0>] (dump_stack+0x0/0x1c) from [<c00337ec>] (warn_slowpath_common+0x58/0x70)
[<c0033794>] (warn_slowpath_common+0x0/0x70) from [<c0033828>] (warn_slowpath_null+0x24/0x2c)
[<c0033804>] (warn_slowpath_null+0x0/0x2c) from [<c01ff28c>] (driver_probe_device+0x78/0x21c)
[<c01ff214>] (driver_probe_device+0x0/0x21c) from [<c01ff49c>] (__driver_attach+0x6c/0x90)
[<c01ff430>] (__driver_attach+0x0/0x90) from [<c01fda70>] (bus_for_each_dev+0x58/0x98)
[<c01fda18>] (bus_for_each_dev+0x0/0x98) from [<c01ff0f4>] (driver_attach+0x20/0x28)
[<c01ff0d4>] (driver_attach+0x0/0x28) from [<c01fe2f4>] (bus_add_driver+0xb4/0x230)
[<c01fe240>] (bus_add_driver+0x0/0x230) from [<c01ffb24>] (driver_register+0xac/0x138)
[<c01ffa78>] (driver_register+0x0/0x138) from [<c0215d4c>] (spi_register_driver+0x4c/0x60)
[<c0215d00>] (spi_register_driver+0x0/0x60) from [<c045414c>] (ks8851_init+0x14/0x1c)
[<c0454138>] (ks8851_init+0x0/0x1c) from [<c0008770>] (do_one_initcall+0x9c/0x164)
[<c00086d4>] (do_one_initcall+0x0/0x164) from [<c0436410>] (kernel_init+0x128/0x210)
[<c04362e8>] (kernel_init+0x0/0x210) from [<c0038754>] (do_exit+0x0/0x72c)
---[ end trace 4dcda79f5e89dd84 ]---
ks8851 spi1.0: message enable is 0
ks8851 spi1.0: eth0: revision 0, MAC 08:00:28:01:4d:c6, IRQ 194, has EEPROM

Fix this by partially reverting the original commit.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-06-18 11:27:04 +01:00
..
Kconfig Merge branch 'next/devel-s3c24xx-hsspi' into next/devel-samsung 2012-05-14 18:22:46 +09:00
Makefile spi/bfin5xx: rename config macro name for bfin5xx spi controller driver 2012-04-27 12:15:45 -06:00
spi-altera.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04: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 atmel/spi: fix missing probe 2011-11-09 23:02:12 +08:00
spi-au1550.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-bcm63xx.c spi/bcm63xx: set master driver mode_bits. 2012-04-27 11:19:15 -06: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: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-butterfly.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
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: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
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: spi-dw: fix all sparse warnings 2011-09-21 09:41:48 -06:00
spi-ep93xx.c spi/ep93xx: clean probe/remove routines 2012-05-09 18:37:42 -06: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: fix section mismatch warning 2011-12-07 22:17:39 +01:00
spi-imx.c Merge branch 'imx/pinctrl' into imx/clock 2012-05-14 15:30:52 +02: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 drivercore: Add helper macro for platform_driver boilerplate 2011-10-25 00:35:47 +02:00
spi-mpc52xx.c spi: By default setup spi_masters with 1 chipselect and dynamics bus number 2012-05-19 23:42:08 -06:00
spi-mpc512x-psc.c drivercore: Add helper macro for platform_driver boilerplate 2011-10-25 00:35:47 +02: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: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-omap2-mcspi.c SPI: fix over-eager devm_xxx() conversion 2012-06-18 11:27:04 +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 ARM: Orion: SPI: Add clk/clkdev support. 2012-05-08 16:33:55 -07:00
spi-pl022.c spi/pl022: Allow request for higher frequency than maximum possible 2012-04-27 12:07:40 -06: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 ARM: S3C24XX: move spi-s3c24xx platdata out of mach 2012-01-31 20:06:27 +09:00
spi-s3c64xx.c spi: s3c64xx: Fix build 2012-03-15 03:32:17 -06: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: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-sh-sci.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
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 drivercore: Add helper macro for platform_driver boilerplate 2011-10-25 00:35:47 +02:00
spi-tegra.c drivercore: Add helper macro for platform_driver boilerplate 2011-10-25 00:35:47 +02:00
spi-ti-ssp.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-tle62x0.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
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: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-xilinx.c drivercore: Add helper macro for platform_driver boilerplate 2011-10-25 00:35:47 +02:00
spi.c spi: By default setup spi_masters with 1 chipselect and dynamics bus number 2012-05-19 23:42:08 -06:00
spidev.c