Quoting Colin King (2019-06-07 03:45:33) > 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")
I suspect this problem was there before this commit, but OK. > 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; > } Aren't there more leaks in this driver?