]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
clk: spear: fix resource leak in clk_register_vco_pll()
authorHaoxiang Li <lihaoxiang@isrc.iscas.ac.cn>
Wed, 25 Mar 2026 06:22:04 +0000 (14:22 +0800)
committerArnd Bergmann <arnd@arndb.de>
Wed, 1 Apr 2026 21:46:18 +0000 (23:46 +0200)
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>
drivers/clk/spear/clk-vco-pll.c

index 601e123f5c4b52a5ccea0d3f8e50ea750e373d3f..faba727e2f84365e22f1c161ad4e9e9bda6a6729 100644 (file)
@@ -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: