clk: bcm2835: add missing release if devm_clk_hw_register fails
authorNavid Emamdoost <navid.emamdoost@gmail.com>
Sun, 9 Aug 2020 23:11:58 +0000 (18:11 -0500)
committerStephen Boyd <sboyd@kernel.org>
Wed, 14 Oct 2020 03:02:39 +0000 (20:02 -0700)
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 <navid.emamdoost@gmail.com>
Link: https://lore.kernel.org/r/20200809231202.15811-1-navid.emamdoost@gmail.com
Fixes: 41691b8862e2 ("clk: bcm2835: Add support for programming the audio domain clocks")
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/bcm/clk-bcm2835.c

index 3439bc6..1ac803e 100644 (file)
@@ -1338,8 +1338,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;
 }