diff mbox series

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

Message ID b11039e4-69c6-4247-b4ba-c442b9427231@web.de
State New
Headers show
Series clk: ti: Adjustments for eight function implementations | expand

Commit Message

Markus Elfring Dec. 24, 2023, 4:50 p.m. UTC
From: Markus Elfring <elfring@users.sourceforge.net>
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@users.sourceforge.net>
---
 drivers/clk/ti/clkctrl.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

--
2.43.0

Comments

kernel test robot Dec. 28, 2023, 5:18 a.m. UTC | #1
Hi Markus,

kernel test robot noticed the following build errors:

[auto build test ERROR on clk/clk-next]
[also build test ERROR on linus/master v6.7-rc7 next-20231222]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Markus-Elfring/clk-ti-Less-function-calls-in-of_omap2_apll_setup-after-error-detection/20231225-152410
base:   https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git clk-next
patch link:    https://lore.kernel.org/r/b11039e4-69c6-4247-b4ba-c442b9427231%40web.de
patch subject: [PATCH 09/10] clk: ti: Less function calls in _ti_clkctrl_clk_register() after error detection
config: arm-allmodconfig (https://download.01.org/0day-ci/archive/20231228/202312281350.5H2Rhh67-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231228/202312281350.5H2Rhh67-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312281350.5H2Rhh67-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/clk/ti/clkctrl.c: In function '_ti_clkctrl_clk_register':
>> drivers/clk/ti/clkctrl.c:330:1: error: 'free_init_name' undeclared (first use in this function)
     330 | free_init_name;
         | ^~~~~~~~~~~~~~
   drivers/clk/ti/clkctrl.c:330:1: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/clk/ti/clkctrl.c:305:17: error: label 'free_init_name' used but not defined
     305 |                 goto free_init_name;
         |                 ^~~~


vim +/free_init_name +330 drivers/clk/ti/clkctrl.c

   283	
   284	static int __init
   285	_ti_clkctrl_clk_register(struct omap_clkctrl_provider *provider,
   286				 struct device_node *node, struct clk_hw *clk_hw,
   287				 u16 offset, u8 bit, const char * const *parents,
   288				 int num_parents, const struct clk_ops *ops,
   289				 const char *clkctrl_name)
   290	{
   291		struct clk_init_data init = { NULL };
   292		struct clk *clk;
   293		struct omap_clkctrl_clk *clkctrl_clk;
   294		int ret = 0;
   295	
   296		init.name = clkctrl_get_clock_name(node, clkctrl_name, offset, bit,
   297						   ti_clk_get_features()->flags &
   298						   TI_CLK_CLKCTRL_COMPAT);
   299		if (!init.name)
   300			return -ENOMEM;
   301	
   302		clkctrl_clk = kzalloc(sizeof(*clkctrl_clk), GFP_KERNEL);
   303		if (!clkctrl_clk) {
   304			ret = -ENOMEM;
 > 305			goto free_init_name;
   306		}
   307	
   308		clk_hw->init = &init;
   309		init.parent_names = parents;
   310		init.num_parents = num_parents;
   311		init.ops = ops;
   312		init.flags = 0;
   313	
   314		clk = of_ti_clk_register(node, clk_hw, init.name);
   315		if (IS_ERR_OR_NULL(clk)) {
   316			ret = -EINVAL;
   317			goto cleanup;
   318		}
   319	
   320		clkctrl_clk->reg_offset = offset;
   321		clkctrl_clk->bit_offset = bit;
   322		clkctrl_clk->clk = clk_hw;
   323	
   324		list_add(&clkctrl_clk->node, &provider->clocks);
   325	
   326		return 0;
   327	
   328	cleanup:
   329		kfree(clkctrl_clk);
 > 330	free_init_name;
   331		kfree(init.name);
   332		return ret;
   333	}
   334
Markus Elfring Dec. 28, 2023, 6:39 a.m. UTC | #2
>    drivers/clk/ti/clkctrl.c: In function '_ti_clkctrl_clk_register':
>>> drivers/clk/ti/clkctrl.c:330:1: error: 'free_init_name' undeclared (first use in this function)>    328	cleanup:
>    329		kfree(clkctrl_clk);
>  > 330	free_init_name;
>    331		kfree(init.name);
>    332		return ret;
…

Will it become helpful to fix a typo for the delimiter of the shown label?

   Or:

Are you looking for further adjustments according to software design options
which would be supported by the file “cleanup.h”?
https://elixir.bootlin.com/linux/v6.7-rc7/source/include/linux/cleanup.h

Regards,
Markus
diff mbox series

Patch

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;
 }