[06/10,V2] spi: Add SPI driver for mx233/mx28
From: marex@denx.de (Marek Vasut)
Date: 2012-08-01 02:31:04
Also in:
linux-spi
From: marex@denx.de (Marek Vasut)
Date: 2012-08-01 02:31:04
Also in:
linux-spi
Dear Guenter Roeck, [...]
quoted
+static int __devexit mxs_spi_remove(struct platform_device *pdev) +{ + struct spi_master *host; + struct mxs_spi *spi; + struct mxs_ssp *ssp; + + host = platform_get_drvdata(pdev); + spi = spi_master_get_devdata(host); + ssp = &spi->ssp; + + spi_unregister_master(host); + + platform_set_drvdata(pdev, NULL); + + clk_disable_unprepare(ssp->clk); + + spi_master_put(host); + kfree(host); +Is the kfree() here and in the probe function really necessary ?
It certainly would seem that way.
Couple of reasons for asking: No other SPI master driver calls it in the remove function (unless I missed it), most drivers don't call it in the probe function error path, and if I call it in the remove function in a SPI master driver I am working on, and load/unload the module several times in a row, I get a nasty kernel crash.
It seems the spi_master class takes care of that kfree() in spi.c:spi_master_release() . Good catch, thanks!
Thanks, Guenter
Best regards, Marek Vasut