diff options
author | Dan Carpenter <dan.carpenter@linaro.org> | 2023-10-02 10:04:36 +0300 |
---|---|---|
committer | Stephen Boyd <sboyd@kernel.org> | 2023-10-19 03:54:47 +0300 |
commit | 7af5b9eadd64c9e02a71f97c45bcdf3b64841f6b (patch) | |
tree | 29639fbd0df14bce56fa90cde3087b7b47d35c89 /drivers/clk/ti | |
parent | a5d14f8b551eb1551c10053653ee8e27f19672fa (diff) | |
download | linux-7af5b9eadd64c9e02a71f97c45bcdf3b64841f6b.tar.xz |
clk: ti: fix double free in of_ti_divider_clk_setup()
The "div" pointer is freed in _register_divider() and again in
of_ti_divider_clk_setup(). Delete the free in _register_divider()
Fixes: fbbc18591585 ("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>
Diffstat (limited to 'drivers/clk/ti')
-rw-r--r-- | drivers/clk/ti/divider.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/drivers/clk/ti/divider.c b/drivers/clk/ti/divider.c index 768a1f3398b4..5d5bb123ba94 100644 --- a/drivers/clk/ti/divider.c +++ b/drivers/clk/ti/divider.c @@ -309,7 +309,6 @@ static struct clk *_register_divider(struct device_node *node, u32 flags, struct clk_omap_divider *div) { - struct clk *clk; struct clk_init_data init; const char *parent_name; const char *name; @@ -326,12 +325,7 @@ static struct clk *_register_divider(struct device_node *node, div->hw.init = &init; /* register the clock */ - clk = of_ti_clk_register(node, &div->hw, name); - - if (IS_ERR(clk)) - kfree(div); - - return clk; + return of_ti_clk_register(node, &div->hw, name); } int ti_clk_parse_divider_data(int *div_table, int num_dividers, int max_div, |