On Sat, Mar 20, 2010 at 03:12:43PM +0100, Wolfram Sang wrote: > Probably due to a copy & paste bug, clientdata was set again to the data > structure (which is freed immediately afterwards) when it should be NULLed. > > Signed-off-by: Wolfram Sang <w.sang@xxxxxxxxxxxxxx> > Cc: Ryan Mallon <ryan@xxxxxxxxxxxxxxxx> > Cc: Anton Vorontsov <cbouatmailru@xxxxxxxxx> > --- > drivers/power/ds2782_battery.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/power/ds2782_battery.c b/drivers/power/ds2782_battery.c > index da14f37..6971b85 100644 > --- a/drivers/power/ds2782_battery.c > +++ b/drivers/power/ds2782_battery.c > @@ -236,7 +236,7 @@ static int ds2782_battery_remove(struct i2c_client *client) > idr_remove(&battery_id, info->id); > mutex_unlock(&battery_lock); > > - i2c_set_clientdata(client, info); > + i2c_set_clientdata(client, NULL); [...] > - i2c_set_clientdata(client, info); > + i2c_set_clientdata(client, NULL); Why is this needed? I'd vote for just removing set_clientdata in fail/remove paths. Thanks, -- Anton Vorontsov email: cbouatmailru@xxxxxxxxx irc://irc.freenode.net/bd2 -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html