On Wed, Aug 01, 2012 at 11:53:36AM +0800, Shawn Guo wrote:
On Wed, Aug 01, 2012 at 04:31:04AM +0200, Marek Vasut wrote:
quoted
quoted
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!
I do not hardware setup to confirm that right away. When
spi_master_release will be called exactly? The time that
spi_master_put gets called? I'm trying to understand if the kfree
is not needed only in remove function, or both probe and remove.
I think the call to spi_master_put() triggers the call to spi_master_release().
If so, kfree() would not be needed at all, and the documentation is wrong.
Thanks,
Guenter