[arm-tegra:hte/for-next 2/10] drivers/hte/hte.c:616:6: warning: variable 'ei' is used uninitialized whenever 'if' condition is true

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra.git hte/for-next
head:   cedbe14082d169f4c1136c70c5170a76bd9a076a
commit: a15a6cd5adac70f8ea9188b55ff0b2899cc34e0f [2/10] drivers: Add hardware timestamp engine (HTE)
config: hexagon-allyesconfig (https://download.01.org/0day-ci/archive/20220504/202205040735.Qhz7Bads-lkp@xxxxxxxxx/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 363b3a645a1e30011cc8da624f13dac5fd915628)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra.git/commit/?id=a15a6cd5adac70f8ea9188b55ff0b2899cc34e0f
        git remote add arm-tegra https://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra.git
        git fetch --no-tags arm-tegra hte/for-next
        git checkout a15a6cd5adac70f8ea9188b55ff0b2899cc34e0f
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/hte/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

>> drivers/hte/hte.c:616:6: warning: variable 'ei' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
           if (ret < 0)
               ^~~~~~~
   drivers/hte/hte.c:630:13: note: uninitialized use occurs here
           module_put(ei->gdev->owner);
                      ^~
   drivers/hte/hte.c:616:2: note: remove the 'if' if its condition is always false
           if (ret < 0)
           ^~~~~~~~~~~~
   drivers/hte/hte.c:595:6: warning: variable 'ei' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
           if (!gdev->chip) {
               ^~~~~~~~~~~
   drivers/hte/hte.c:630:13: note: uninitialized use occurs here
           module_put(ei->gdev->owner);
                      ^~
   drivers/hte/hte.c:595:2: note: remove the 'if' if its condition is always false
           if (!gdev->chip) {
           ^~~~~~~~~~~~~~~~~~
   drivers/hte/hte.c:570:24: note: initialize the variable 'ei' to silence this warning
           struct hte_ts_info *ei;
                                 ^
                                  = NULL
   2 warnings generated.


vim +616 drivers/hte/hte.c

   551	
   552	/**
   553	 * hte_ts_get() - The function to initialize and obtain HTE desc.
   554	 *
   555	 * The function initializes the consumer provided HTE descriptor. If consumer
   556	 * has device tree node, index is used to parse the line id and other details.
   557	 * The function needs to be called before using any request APIs.
   558	 *
   559	 * @dev: HTE consumer/client device, used in case of parsing device tree node.
   560	 * @desc: Pre-allocated timestamp descriptor.
   561	 * @index: The index will be used as an index to parse line_id from the
   562	 * device tree node if node is present.
   563	 *
   564	 * Context: Holds mutex lock.
   565	 * Returns: Returns 0 on success or negative error code on failure.
   566	 */
   567	int hte_ts_get(struct device *dev, struct hte_ts_desc *desc, int index)
   568	{
   569		struct hte_device *gdev;
   570		struct hte_ts_info *ei;
   571		const struct fwnode_handle *fwnode;
   572		struct of_phandle_args args;
   573		u32 xlated_id;
   574		int ret;
   575		bool free_name;
   576	
   577		if (!desc)
   578			return -EINVAL;
   579	
   580		fwnode = dev ? dev_fwnode(dev) : NULL;
   581	
   582		if (is_of_node(fwnode))
   583			gdev = hte_of_get_dev(dev, desc, index, &args, &free_name);
   584		else
   585			gdev = hte_get_dev(desc);
   586	
   587		if (IS_ERR(gdev)) {
   588			pr_err("%s() no hte dev found\n", __func__);
   589			return PTR_ERR(gdev);
   590		}
   591	
   592		if (!try_module_get(gdev->owner))
   593			return -ENODEV;
   594	
   595		if (!gdev->chip) {
   596			pr_err("%s(): requested id does not have provider\n",
   597			       __func__);
   598			ret = -ENODEV;
   599			goto out;
   600		}
   601	
   602		if (is_of_node(fwnode)) {
   603			if (!gdev->chip->xlate_of)
   604				ret = -EINVAL;
   605			else
   606				ret = gdev->chip->xlate_of(gdev->chip, &args,
   607							   desc, &xlated_id);
   608		} else {
   609			if (!gdev->chip->xlate_plat)
   610				ret = -EINVAL;
   611			else
   612				ret = gdev->chip->xlate_plat(gdev->chip, desc,
   613							     &xlated_id);
   614		}
   615	
 > 616		if (ret < 0)
   617			goto out;
   618	
   619		ei = &gdev->ei[xlated_id];
   620	
   621		ret = hte_bind_ts_info_locked(ei, desc, xlated_id);
   622		if (ret)
   623			goto out;
   624	
   625		ei->free_attr_name = free_name;
   626	
   627		return 0;
   628	
   629	out:
   630		module_put(ei->gdev->owner);
   631	
   632		return ret;
   633	}
   634	EXPORT_SYMBOL_GPL(hte_ts_get);
   635	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp



[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux