summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaoxiang Li <lihaoxiang@isrc.iscas.ac.cn>2026-03-25 09:22:04 +0300
committerArnd Bergmann <arnd@arndb.de>2026-04-02 00:46:18 +0300
commita0ac82cbed1007afd89e30940fe2335b61666783 (patch)
tree871dc88ca5c3690e98a026e49045593f03751ef0
parentc7091fd5ebda16a67a121f64cf37014332de965d (diff)
downloadlinux-a0ac82cbed1007afd89e30940fe2335b61666783.tar.xz
clk: spear: fix resource leak in clk_register_vco_pll()
Add a goto label in clk_register_vco_pll(), unregister vco_clk if tpll_clk is failed to be registered. Signed-off-by: Haoxiang Li <lihaoxiang@isrc.iscas.ac.cn> Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Link: https://lore.kernel.org/r/20260325062204.169648-1-lihaoxiang@isrc.iscas.ac.cn Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-rw-r--r--drivers/clk/spear/clk-vco-pll.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/clk/spear/clk-vco-pll.c b/drivers/clk/spear/clk-vco-pll.c
index 601e123f5c4b..faba727e2f84 100644
--- a/drivers/clk/spear/clk-vco-pll.c
+++ b/drivers/clk/spear/clk-vco-pll.c
@@ -343,13 +343,15 @@ struct clk *clk_register_vco_pll(const char *vco_name, const char *pll_name,
tpll_clk = clk_register(NULL, &pll->hw);
if (IS_ERR_OR_NULL(tpll_clk))
- goto free_pll;
+ goto unregister_clk;
if (pll_clk)
*pll_clk = tpll_clk;
return vco_clk;
+unregister_clk:
+ clk_unregister(vco_clk);
free_pll:
kfree(pll);
free_vco: