power: supply: ab8500: Cleanup probe in reverse order
authorKrzysztof Kozlowski <krzk@kernel.org>
Fri, 4 Oct 2019 15:07:36 +0000 (17:07 +0200)
committerSebastian Reichel <sre@kernel.org>
Sun, 20 Oct 2019 13:17:15 +0000 (15:17 +0200)
It is logical to cleanup in probe's error path in reverse order to
previous actions.  It also makes easier to add additional goto labels
within this error path.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/ab8500_btemp.c
drivers/power/supply/ab8500_fg.c

index ad8c51ef8b8be6223ad107223d7b8dcfdc26b775..e9f536594770976f0bc894e30d3b3dfd6b098806 100644 (file)
@@ -1121,13 +1121,13 @@ static int ab8500_btemp_probe(struct platform_device *pdev)
        return ret;
 
 free_irq:
-       power_supply_unregister(di->btemp_psy);
-
        /* We also have to free all successfully registered irqs */
        for (i = i - 1; i >= 0; i--) {
                irq = platform_get_irq_byname(pdev, ab8500_btemp_irq[i].name);
                free_irq(irq, di);
        }
+
+       power_supply_unregister(di->btemp_psy);
 free_btemp_wq:
        destroy_workqueue(di->btemp_wq);
        return ret;
index f7909dfd3b615fb00b66a21eb67eac059ca96726..015f4676e2bab82457df1bb65ac0eef6bb146a0d 100644 (file)
@@ -3219,15 +3219,15 @@ static int ab8500_fg_probe(struct platform_device *pdev)
        return ret;
 
 free_irq:
-       power_supply_unregister(di->fg_psy);
-
        /* We also have to free all registered irqs */
+       irq = platform_get_irq_byname(pdev, ab8500_fg_irq_bh[0].name);
+       free_irq(irq, di);
        for (i = 0; i < ARRAY_SIZE(ab8500_fg_irq_th); i++) {
                irq = platform_get_irq_byname(pdev, ab8500_fg_irq_th[i].name);
                free_irq(irq, di);
        }
-       irq = platform_get_irq_byname(pdev, ab8500_fg_irq_bh[0].name);
-       free_irq(irq, di);
+
+       power_supply_unregister(di->fg_psy);
 free_inst_curr_wq:
        destroy_workqueue(di->fg_wq);
        return ret;