From: Colin Ian King <colin.k...@canonical.com>

The pll struct is being allocated but not kfree'd on an error return
path when devm_clk_hw_register fails.  Fix this with a kfree on pll
if an error occurs.

Addresses-Coverity: ("Resource leak")
Fixes: b19f009d4510 ("clk: bcm2835: Migrate to clk_hw based registration and OF 
APIs")
Signed-off-by: Colin Ian King <colin.k...@canonical.com>
---
 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 770bb01f523e..90584deaf416 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -1310,8 +1310,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.20.1

Reply via email to