mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
clk: bm1880: remove kfrees on static allocations
[ Upstream commitc861c1be38] bm1880_clk_unregister_pll & bm1880_clk_unregister_div both try to free statically allocated variables, so remove those kfrees. For example, if we take L703 kfree(div_hw): - div_hw is a bm1880_div_hw_clock pointer - in bm1880_clk_register_plls this is pointed to an element of arg1: struct bm1880_div_hw_clock *clks - in the probe, where bm1880_clk_register_plls is called arg1 is bm1880_div_clks, defined on L371: static struct bm1880_div_hw_clock bm1880_div_clks[] Signed-off-by: Conor Dooley <conor.dooley@microchip.com> Fixes:1ab4601da5("clk: Add common clock driver for BM1880 SoC") Link: https://lore.kernel.org/r/20211223154244.1024062-1-conor.dooley@microchip.com Signed-off-by: Stephen Boyd <sboyd@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
36d46e21c9
commit
e16e836d51
@@ -522,14 +522,6 @@ static struct clk_hw *bm1880_clk_register_pll(struct bm1880_pll_hw_clock *pll_cl
|
|||||||
return hw;
|
return hw;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void bm1880_clk_unregister_pll(struct clk_hw *hw)
|
|
||||||
{
|
|
||||||
struct bm1880_pll_hw_clock *pll_hw = to_bm1880_pll_clk(hw);
|
|
||||||
|
|
||||||
clk_hw_unregister(hw);
|
|
||||||
kfree(pll_hw);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int bm1880_clk_register_plls(struct bm1880_pll_hw_clock *clks,
|
static int bm1880_clk_register_plls(struct bm1880_pll_hw_clock *clks,
|
||||||
int num_clks,
|
int num_clks,
|
||||||
struct bm1880_clock_data *data)
|
struct bm1880_clock_data *data)
|
||||||
@@ -555,7 +547,7 @@ static int bm1880_clk_register_plls(struct bm1880_pll_hw_clock *clks,
|
|||||||
|
|
||||||
err_clk:
|
err_clk:
|
||||||
while (i--)
|
while (i--)
|
||||||
bm1880_clk_unregister_pll(data->hw_data.hws[clks[i].pll.id]);
|
clk_hw_unregister(data->hw_data.hws[clks[i].pll.id]);
|
||||||
|
|
||||||
return PTR_ERR(hw);
|
return PTR_ERR(hw);
|
||||||
}
|
}
|
||||||
@@ -695,14 +687,6 @@ static struct clk_hw *bm1880_clk_register_div(struct bm1880_div_hw_clock *div_cl
|
|||||||
return hw;
|
return hw;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void bm1880_clk_unregister_div(struct clk_hw *hw)
|
|
||||||
{
|
|
||||||
struct bm1880_div_hw_clock *div_hw = to_bm1880_div_clk(hw);
|
|
||||||
|
|
||||||
clk_hw_unregister(hw);
|
|
||||||
kfree(div_hw);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int bm1880_clk_register_divs(struct bm1880_div_hw_clock *clks,
|
static int bm1880_clk_register_divs(struct bm1880_div_hw_clock *clks,
|
||||||
int num_clks,
|
int num_clks,
|
||||||
struct bm1880_clock_data *data)
|
struct bm1880_clock_data *data)
|
||||||
@@ -729,7 +713,7 @@ static int bm1880_clk_register_divs(struct bm1880_div_hw_clock *clks,
|
|||||||
|
|
||||||
err_clk:
|
err_clk:
|
||||||
while (i--)
|
while (i--)
|
||||||
bm1880_clk_unregister_div(data->hw_data.hws[clks[i].div.id]);
|
clk_hw_unregister(data->hw_data.hws[clks[i].div.id]);
|
||||||
|
|
||||||
return PTR_ERR(hw);
|
return PTR_ERR(hw);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user