clk: ti: fix double free in of_ti_divider_clk_setup()
[ Upstream commit 7af5b9eadd64c9e02a71f97c45bcdf3b64841f6b ]
The "div" pointer is freed in _register_divider() and again in
of_ti_divider_clk_setup(). Delete the free in _register_divider()
Fixes: fbbc185915
("clk: ti: divider: cleanup _register_divider and ti_clk_get_div_table")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://lore.kernel.org/r/6d36eeec-6c8a-4f11-a579-aa3cd7c38749@moroto.mountain
Reviewed-by: Tony Lindgren <tony@atomide.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
acb535d750
commit
0beaefa988
@@ -317,7 +317,6 @@ static struct clk *_register_divider(struct device_node *node,
|
|||||||
u32 flags,
|
u32 flags,
|
||||||
struct clk_omap_divider *div)
|
struct clk_omap_divider *div)
|
||||||
{
|
{
|
||||||
struct clk *clk;
|
|
||||||
struct clk_init_data init;
|
struct clk_init_data init;
|
||||||
const char *parent_name;
|
const char *parent_name;
|
||||||
const char *name;
|
const char *name;
|
||||||
@@ -334,12 +333,7 @@ static struct clk *_register_divider(struct device_node *node,
|
|||||||
div->hw.init = &init;
|
div->hw.init = &init;
|
||||||
|
|
||||||
/* register the clock */
|
/* register the clock */
|
||||||
clk = of_ti_clk_register(node, &div->hw, name);
|
return of_ti_clk_register(node, &div->hw, name);
|
||||||
|
|
||||||
if (IS_ERR(clk))
|
|
||||||
kfree(div);
|
|
||||||
|
|
||||||
return clk;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int ti_clk_parse_divider_data(int *div_table, int num_dividers, int max_div,
|
int ti_clk_parse_divider_data(int *div_table, int num_dividers, int max_div,
|
||||||
|
Reference in New Issue
Block a user