On Mon, Jul 25, 2011 at 07:29:28PM +0100, Mark Brown wrote: > On Mon, Jul 25, 2011 at 11:19:16AM -0700, Dmitry Torokhov wrote: > > > Right, like i2c bus we could just have platform core clean up platform > > drvdata pointer after calling ->remove() and also if ->probe() errors > > out. > > I2C doesn't do this (at least not any more). > Sure does. See drivers/i2c/i2c-core.c::i2c_device_probe() and i2c_device_remove(). > > Then individual drivers do not have to care about cleaning up this > > pointer. > > They don't have to worry about it anyway, the only thing that is allowed > to use the pointer is a currently bound driver and it's only allowed to > rely on is that while it's bound it'll get back the same driver_data > that it put in. Right, except that some people trying to use this pointers to pass platform data to the driver... Resetting the pointer to NULL on unbind will hopefully show them their mistake. -- Dmitry -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html