From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> Date: Sun, 24 Dec 2023 16:06:34 +0100 The kfree() function was called in a few cases by the of_omap2_apll_setup() function during error handling even if the passed variable contained a null pointer. * Split a condition check. * Adjust jump targets. Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> --- drivers/clk/ti/clkctrl.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/clk/ti/clkctrl.c b/drivers/clk/ti/clkctrl.c index 5a1bd176160c..cdc3cf1ddddf 100644 --- a/drivers/clk/ti/clkctrl.c +++ b/drivers/clk/ti/clkctrl.c @@ -296,11 +296,13 @@ _ti_clkctrl_clk_register(struct omap_clkctrl_provider *provider, init.name = clkctrl_get_clock_name(node, clkctrl_name, offset, bit, ti_clk_get_features()->flags & TI_CLK_CLKCTRL_COMPAT); + if (!init.name) + return -ENOMEM; clkctrl_clk = kzalloc(sizeof(*clkctrl_clk), GFP_KERNEL); - if (!init.name || !clkctrl_clk) { + if (!clkctrl_clk) { ret = -ENOMEM; - goto cleanup; + goto free_init_name; } clk_hw->init = &init; @@ -324,8 +326,9 @@ _ti_clkctrl_clk_register(struct omap_clkctrl_provider *provider, return 0; cleanup: - kfree(init.name); kfree(clkctrl_clk); +free_init_name; + kfree(init.name); return ret; } -- 2.43.0