diff options
| author | Haoxiang Li <lihaoxiang@isrc.iscas.ac.cn> | 2026-03-25 09:22:04 +0300 |
|---|---|---|
| committer | Arnd Bergmann <arnd@arndb.de> | 2026-04-02 00:46:18 +0300 |
| commit | a0ac82cbed1007afd89e30940fe2335b61666783 (patch) | |
| tree | 871dc88ca5c3690e98a026e49045593f03751ef0 | |
| parent | c7091fd5ebda16a67a121f64cf37014332de965d (diff) | |
| download | linux-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.c | 4 |
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: |
