power: supply: ab8500: Fix the error handling path of ab8500_charger_probe()
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Tue, 28 Dec 2021 20:43:22 +0000 (21:43 +0100)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Mon, 3 Jan 2022 17:33:29 +0000 (18:33 +0100)
Since the commit below, ab8500_bm_of_remove() needs to be called after a
successful ab8500_bm_of_probe() call.
This commit has only updated the remove function.

Fix the error handling path of the probe the same way.

Fixes: 6252c706cdb0 ("power: supply: ab8500: Standardize operating temperature")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/ab8500_charger.c

index db7457064a1791a698afc0acf82da071ddc8dc19..ce074c018dcb69feea81fd7782ec7f6ca306f452 100644 (file)
@@ -3665,11 +3665,13 @@ static int ab8500_charger_probe(struct platform_device *pdev)
        }
        if (!match) {
                dev_err(dev, "no matching components\n");
-               return -ENODEV;
+               ret = -ENODEV;
+               goto remove_ab8500_bm;
        }
        if (IS_ERR(match)) {
                dev_err(dev, "could not create component match\n");
-               return PTR_ERR(match);
+               ret = PTR_ERR(match);
+               goto remove_ab8500_bm;
        }
 
        /* Notifier for external charger enabling */
@@ -3710,6 +3712,8 @@ out_charger_notifier:
        if (!di->ac_chg.enabled)
                blocking_notifier_chain_unregister(
                        &charger_notifier_list, &charger_nb);
+remove_ab8500_bm:
+       ab8500_bm_of_remove(di->usb_chg.psy, di->bm);
        return ret;
 }