Shawn Guo writes: > On Wed, Aug 01, 2012 at 08:45:19AM +0200, Marek Vasut wrote: > > > I must be missing something. Why do almost all spi drivers call it in the > > > error path, even if there is no call to spi_master_get ? > > > > To push the refcounting to 0, to deallocate the device, I'd say ... > > > It's not going to work if spi_master_put is called without > spi_master_get being called before that. > spi_alloc_master() calls device_initialize() which resuires a device_put() (called from spi_master_put()) to free the device.
Thus each call of either spi_alloc_master() or spi_master_get() must be paired with an spi_master_put() call to free the resources. The kfree() is taken care of by the spi_master_release() function that is called once the last reference to the underlying struct device has been released. Thus kfree() must not be called after spi_alloc_master(). Lothar Waßmann -- ___________________________________________________________ Ka-Ro electronics GmbH | Pascalstraße 22 | D - 52076 Aachen Phone: +49 2408 1402-0 | Fax: +49 2408 1402-10 Geschäftsführer: Matthias Kaussen Handelsregistereintrag: Amtsgericht Aachen, HRB 4996 www.karo-electronics.de | [email protected] ___________________________________________________________ ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ spi-devel-general mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/spi-devel-general
