clk: s2mps11: Simplify s2mps11_clk_probe unwind paths
authorAxel Lin <axel.lin@ingics.com>
Thu, 16 Jul 2015 13:59:43 +0000 (21:59 +0800)
committerStephen Boyd <sboyd@codeaurora.org>
Tue, 28 Jul 2015 18:58:46 +0000 (11:58 -0700)
The devm_clk_unregister() in .probe error case is not necessary as it will
be automatically called when probe fails.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
drivers/clk/clk-s2mps11.c

index 9b13a303d3f81e432f6ddac4ffe85dd27d4c8f82..ba7fb1b8c182c6e8e7bbf72b251692beca54f07f 100644 (file)
@@ -246,7 +246,7 @@ static int s2mps11_clk_probe(struct platform_device *pdev)
                                        s2mps11_name(s2mps11_clk), NULL);
                if (!s2mps11_clk->lookup) {
                        ret = -ENOMEM;
-                       goto err_lup;
+                       goto err_reg;
                }
        }
 
@@ -265,16 +265,10 @@ static int s2mps11_clk_probe(struct platform_device *pdev)
        platform_set_drvdata(pdev, s2mps11_clks);
 
        return ret;
-err_lup:
-       devm_clk_unregister(&pdev->dev, s2mps11_clk->clk);
+
 err_reg:
-       while (s2mps11_clk > s2mps11_clks) {
-               if (s2mps11_clk->lookup) {
-                       clkdev_drop(s2mps11_clk->lookup);
-                       devm_clk_unregister(&pdev->dev, s2mps11_clk->clk);
-               }
-               s2mps11_clk--;
-       }
+       while (--i >= 0)
+               clkdev_drop(s2mps11_clks[i].lookup);
 
        return ret;
 }