Using platform_driver_register with a probe function defined using
__init is wrong.
This fixes an oops after:
cd /sys/bus/platform/drivers/spi_imx
echo -n spi_imx.0 > unbind
echo -n spi_imx.0 > bind
Signed-off-by: Uwe Kleine-König <[email protected]>
Cc: David Brownell <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: Sascha Hauer <[email protected]>
---
drivers/spi/spi_imx.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/drivers/spi/spi_imx.c b/drivers/spi/spi_imx.c
index 1b17f44..c83ca05 100644
--- a/drivers/spi/spi_imx.c
+++ b/drivers/spi/spi_imx.c
@@ -666,13 +666,12 @@ static struct platform_driver spi_imx_driver = {
.name = DRIVER_NAME,
.owner = THIS_MODULE,
},
- .probe = spi_imx_probe,
.remove = __exit_p(spi_imx_remove),
};
static int __init spi_imx_init(void)
{
- return platform_driver_register(&spi_imx_driver);
+ return platform_driver_probe(&spi_imx_driver, spi_imx_probe);
}
static void __exit spi_imx_exit(void)
--
1.6.5.2
------------------------------------------------------------------------------
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev
_______________________________________________
spi-devel-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/spi-devel-general