提交 d73ac4ca 编写于 作者: T Tomasz Figa 提交者: Mike Turquette

clk: max77686: Fix clean-up in error and remove paths

This patch fixes invalid kfree() and adds missing call to clk_unregister()
in error and remove paths in max77686_clk_probe(). While at it, error
handling is also cleaned up.
Signed-off-by: NTomasz Figa <t.figa@samsung.com>
Acked-by: NKyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: NMike Turquette <mturquette@linaro.org>
上级 badbc542
...@@ -163,17 +163,9 @@ static int max77686_clk_probe(struct platform_device *pdev) ...@@ -163,17 +163,9 @@ static int max77686_clk_probe(struct platform_device *pdev)
if (IS_ERR(clk)) { if (IS_ERR(clk)) {
ret = PTR_ERR(clk); ret = PTR_ERR(clk);
switch (i) { dev_err(&pdev->dev, "failed to register %s\n",
case MAX77686_CLK_AP: max77686_clks[i]->hw.init->name);
dev_err(&pdev->dev, "Fail to register CLK_AP\n"); goto err_clocks;
goto err_clk_ap;
case MAX77686_CLK_CP:
dev_err(&pdev->dev, "Fail to register CLK_CP\n");
goto err_clk_cp;
case MAX77686_CLK_PMIC:
dev_err(&pdev->dev, "Fail to register CLK_PMIC\n");
goto err_clk_pmic;
}
} }
} }
...@@ -181,13 +173,12 @@ static int max77686_clk_probe(struct platform_device *pdev) ...@@ -181,13 +173,12 @@ static int max77686_clk_probe(struct platform_device *pdev)
return 0; return 0;
err_clk_pmic: err_clocks:
clkdev_drop(max77686_clks[MAX77686_CLK_CP]->lookup); for (--i; i >= 0; --i) {
kfree(max77686_clks[MAX77686_CLK_CP]->hw.clk); clkdev_drop(max77686_clks[i]->lookup);
err_clk_cp: clk_unregister(max77686_clks[i]->hw.clk);
clkdev_drop(max77686_clks[MAX77686_CLK_AP]->lookup); }
kfree(max77686_clks[MAX77686_CLK_AP]->hw.clk);
err_clk_ap:
return ret; return ret;
} }
...@@ -198,7 +189,7 @@ static int max77686_clk_remove(struct platform_device *pdev) ...@@ -198,7 +189,7 @@ static int max77686_clk_remove(struct platform_device *pdev)
for (i = 0; i < MAX77686_CLKS_NUM; i++) { for (i = 0; i < MAX77686_CLKS_NUM; i++) {
clkdev_drop(max77686_clks[i]->lookup); clkdev_drop(max77686_clks[i]->lookup);
kfree(max77686_clks[i]->hw.clk); clk_unregister(max77686_clks[i]->hw.clk);
} }
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册