From: Colin Ian King <colin.king@xxxxxxxxxxxxx> 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.king@xxxxxxxxxxxxx> --- 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