@@ -1686,6 +1686,8 @@ error_4:
error_3:
bq2415x_power_supply_exit(bq);
error_2:
+ if (!IS_ERR(bq->notify_psy))
+ power_supply_put(bq->notify_psy);
kfree(name);
error_1:
mutex_lock(&bq2415x_id_mutex);
@@ -1701,8 +1703,10 @@ static int bq2415x_remove(struct i2c_client *client)
{
struct bq2415x_device *bq = i2c_get_clientdata(client);
- if (bq->notify_psy)
+ if (bq->notify_psy) {
power_supply_unreg_notifier(&bq->nb);
+ power_supply_put(bq->notify_psy);
+ }
bq2415x_sysfs_exit(bq);
bq2415x_power_supply_exit(bq);