From: Navid Emamdoost <[email protected]>

[ Upstream commit f6c992ca7dd4f49042eec61f3fb426c94d901675 ]

In the implementation of bcm2835_register_pll(), the allocated pll is
leaked if devm_clk_hw_register() fails to register hw. Release pll if
devm_clk_hw_register() fails.

Signed-off-by: Navid Emamdoost <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Fixes: 41691b8862e2 ("clk: bcm2835: Add support for programming the audio 
domain clocks")
Signed-off-by: Stephen Boyd <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
 drivers/clk/bcm/clk-bcm2835.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index 011802f1a6df9..f18b4d9e9455b 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -1337,8 +1337,10 @@ static struct clk_hw *bcm2835_register_pll(struct 
bcm2835_cprman *cprman,
        pll->hw.init = &init;
 
        ret = devm_clk_hw_register(cprman->dev, &pll->hw);
-       if (ret)
+       if (ret) {
+               kfree(pll);
                return NULL;
+       }
        return &pll->hw;
 }
 
-- 
2.25.1



Reply via email to