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.
Good catch. Thanks. Acked-by: Ryan Mallon <[email protected]> > Signed-off-by: Wolfram Sang <[email protected]> > Cc: Ryan Mallon <[email protected]> > Cc: Anton Vorontsov <[email protected]> > --- > 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); > > kfree(info); > return 0; > @@ -289,7 +289,7 @@ static int ds2782_battery_probe(struct i2c_client *client, > fail_register: > kfree(info->battery.name); > fail_name: > - i2c_set_clientdata(client, info); > + i2c_set_clientdata(client, NULL); > kfree(info); > fail_info: > mutex_lock(&battery_lock); -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
