[PATCH 09/10] clk: ti: Less function calls in _ti_clkctrl_clk_register() after error detection

From: Markus Elfring
Date: Sun Dec 24 2023 - 11:51:07 EST


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