summaryrefslogtreecommitdiffstats
path: root/drivers/clk/ti
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@linaro.org>2023-10-02 09:04:36 +0200
committerStephen Boyd <sboyd@kernel.org>2023-10-19 02:54:47 +0200
commit7af5b9eadd64c9e02a71f97c45bcdf3b64841f6b (patch)
tree29639fbd0df14bce56fa90cde3087b7b47d35c89 /drivers/clk/ti
parentclk: keystone: pll: fix a couple NULL vs IS_ERR() checks (diff)
downloadlinux-7af5b9eadd64c9e02a71f97c45bcdf3b64841f6b.tar.xz
linux-7af5b9eadd64c9e02a71f97c45bcdf3b64841f6b.zip
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.c8
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,