| From foo@baz Fri Mar 16 15:43:17 CET 2018 |
| From: Christophe JAILLET <christophe.jaillet@wanadoo.fr> |
| Date: Wed, 22 Nov 2017 21:31:20 +0100 |
| Subject: power: supply: ab8500_charger: Bail out in case of error in 'ab8500_charger_init_hw_registers()' |
| |
| From: Christophe JAILLET <christophe.jaillet@wanadoo.fr> |
| |
| |
| [ Upstream commit 09edcb647542487864e23aa8d2ef26be3e08978a ] |
| |
| If an error occurs when we enable the backup battery charging, we should |
| go through the error handling path directly. |
| |
| Before commit db43e6c473b5 ("ab8500-bm: Add usb power path support") this |
| was the case, but this commit has added some code between the last test and |
| the 'out' label. |
| So, in case of error, this added code is executed and the error may be |
| silently ignored. |
| |
| Fix it by adding the missing 'goto out', as done in all other error |
| handling paths. |
| |
| Fixes: db43e6c473b5 ("ab8500-bm: Add usb power path support") |
| Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> |
| Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/power/supply/ab8500_charger.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/power/supply/ab8500_charger.c |
| +++ b/drivers/power/supply/ab8500_charger.c |
| @@ -3221,8 +3221,10 @@ static int ab8500_charger_init_hw_regist |
| ret = abx500_mask_and_set_register_interruptible(di->dev, |
| AB8500_RTC, AB8500_RTC_CTRL_REG, |
| RTC_BUP_CH_ENA, RTC_BUP_CH_ENA); |
| - if (ret < 0) |
| + if (ret < 0) { |
| dev_err(di->dev, "%s mask and set failed\n", __func__); |
| + goto out; |
| + } |
| |
| if (is_ab8540(di->parent)) { |
| ret = abx500_mask_and_set_register_interruptible(di->dev, |