diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2020-05-06 13:11:16 +0300 |
---|---|---|
committer | Sebastian Reichel <sre@kernel.org> | 2020-05-09 01:59:37 +0200 |
commit | cf5701bf749683cc85827fd68c0890838a2b7fd4 (patch) | |
tree | c58f151496bc5f836e5fd52020617f49e3d29990 /drivers/power | |
parent | 2ad3d74e3c69fb371412f37d8226f2da3a3b6cc2 (diff) | |
download | linux-stable-cf5701bf749683cc85827fd68c0890838a2b7fd4.tar.gz linux-stable-cf5701bf749683cc85827fd68c0890838a2b7fd4.tar.bz2 linux-stable-cf5701bf749683cc85827fd68c0890838a2b7fd4.zip |
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')
-rw-r--r-- | drivers/power/supply/bq25890_charger.c | 7 |
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 |