summaryrefslogtreecommitdiffstats
path: root/drivers/power/supply/bq25890_charger.c
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2020-05-06 13:11:16 +0300
committerSebastian Reichel <sre@kernel.org>2020-05-09 01:59:37 +0200
commitcf5701bf749683cc85827fd68c0890838a2b7fd4 (patch)
treec58f151496bc5f836e5fd52020617f49e3d29990 /drivers/power/supply/bq25890_charger.c
parent2ad3d74e3c69fb371412f37d8226f2da3a3b6cc2 (diff)
downloadlinux-cf5701bf749683cc85827fd68c0890838a2b7fd4.tar.bz2
power: bq25890: unlock on error paths in bq25890_resume()
We introduced some new locking here, but need to update the error paths so they unlock before returning. Fixes: 72d9cd9cdc18 ("power: bq25890: protect view of the chip's state") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Reviewed-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Diffstat (limited to 'drivers/power/supply/bq25890_charger.c')
-rw-r--r--drivers/power/supply/bq25890_charger.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/power/supply/bq25890_charger.c b/drivers/power/supply/bq25890_charger.c
index 9339e216651f..20b9824ef5ac 100644
--- a/drivers/power/supply/bq25890_charger.c
+++ b/drivers/power/supply/bq25890_charger.c
@@ -978,21 +978,22 @@ static int bq25890_resume(struct device *dev)
ret = bq25890_get_chip_state(bq, &bq->state);
if (ret < 0)
- return ret;
+ goto unlock;
/* Re-enable ADC only if charger is plugged in. */
if (bq->state.online) {
ret = bq25890_field_write(bq, F_CONV_START, 1);
if (ret < 0)
- return ret;
+ goto unlock;
}
/* signal userspace, maybe state changed while suspended */
power_supply_changed(bq->charger);
+unlock:
mutex_unlock(&bq->lock);
- return 0;
+ return ret;
}
#endif