Thread (43 messages) 43 messages, 7 authors, 2012-08-01

[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

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help