All of lore.kernel.org
 help / color / mirror / Atom feed
* [krzk-github:n/qcom-ufs-opp-v2 14/16] drivers/opp/core.c:1177:4: warning: variable 'ret' is used uninitialized whenever 'if' condition is false
@ 2022-04-11 22:36 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-04-11 22:36 UTC (permalink / raw)
  To: Krzysztof Kozlowski; +Cc: llvm, kbuild-all, linux-kernel

tree:   https://github.com/krzk/linux n/qcom-ufs-opp-v2
head:   bf7d30c9329c87f06dff42b303a9bcfd2e1f54eb
commit: be46c855d54f763bfb95424e5204fe7496e2ee5f [14/16] PM: opp: allow control of multiple clocks
config: arm-buildonly-randconfig-r001-20220411 (https://download.01.org/0day-ci/archive/20220412/202204120601.Szg8qx1B-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project c6e83f560f06cdfe8aa47b248d8bdc58f947274b)
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
        # install arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # https://github.com/krzk/linux/commit/be46c855d54f763bfb95424e5204fe7496e2ee5f
        git remote add krzk-github https://github.com/krzk/linux
        git fetch --no-tags krzk-github n/qcom-ufs-opp-v2
        git checkout be46c855d54f763bfb95424e5204fe7496e2ee5f
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash drivers/opp/

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

All warnings (new ones prefixed by >>):

>> drivers/opp/core.c:1177:4: warning: variable 'ret' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
                           if (opp_table->clks)
                           ^~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:58:30: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/opp/core.c:1215:9: note: uninitialized use occurs here
           return ret;
                  ^~~
   drivers/opp/core.c:1177:4: note: remove the 'if' if its condition is always true
                           if (opp_table->clks)
                           ^~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:56:23: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                         ^
   drivers/opp/core.c:1160:9: note: initialize the variable 'ret' to silence this warning
           int ret;
                  ^
                   = 0
   1 warning generated.


vim +1177 drivers/opp/core.c

  1143	
  1144	/**
  1145	 * dev_pm_opp_set_rate() - Configure new OPP based on frequency
  1146	 * @dev:	 device for which we do this operation
  1147	 * @target_freq: frequency to achieve
  1148	 *
  1149	 * This configures the power-supplies to the levels specified by the OPP
  1150	 * corresponding to the target_freq, and programs the clock to a value <=
  1151	 * target_freq, as rounded by clk_round_rate(). Device wanting to run at fmax
  1152	 * provided by the opp, should have already rounded to the target OPP's
  1153	 * frequency.
  1154	 */
  1155	int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq)
  1156	{
  1157		struct opp_table *opp_table;
  1158		unsigned long freq = 0, temp_freq;
  1159		struct dev_pm_opp *opp = NULL;
  1160		int ret;
  1161	
  1162		opp_table = _find_opp_table(dev);
  1163		if (IS_ERR(opp_table)) {
  1164			dev_err(dev, "%s: device's opp table doesn't exist\n", __func__);
  1165			return PTR_ERR(opp_table);
  1166		}
  1167	
  1168		if (target_freq) {
  1169			/*
  1170			 * For IO devices which require an OPP on some platforms/SoCs
  1171			 * while just needing to scale the clock on some others
  1172			 * we look for empty OPP tables with just a clock handle and
  1173			 * scale only the clk. This makes dev_pm_opp_set_rate()
  1174			 * equivalent to a clk_set_rate()
  1175			 */
  1176			if (!_get_opp_count(opp_table)) {
> 1177				if (opp_table->clks)
  1178					ret = _generic_set_opp_clk_only(dev,
  1179									opp_table->clks[0],
  1180									target_freq);
  1181				goto put_opp_table;
  1182			}
  1183	
  1184			if (opp_table->clks)
  1185				freq = clk_round_rate(opp_table->clks[0], target_freq);
  1186			if ((long)freq <= 0)
  1187				freq = target_freq;
  1188	
  1189			/*
  1190			 * The clock driver may support finer resolution of the
  1191			 * frequencies than the OPP table, don't update the frequency we
  1192			 * pass to clk_set_rate() here.
  1193			 */
  1194			temp_freq = freq;
  1195			opp = _find_freq_ceil(opp_table, &temp_freq);
  1196			if (IS_ERR(opp)) {
  1197				ret = PTR_ERR(opp);
  1198				dev_err(dev, "%s: failed to find OPP for freq %lu (%d)\n",
  1199					__func__, freq, ret);
  1200				goto put_opp_table;
  1201			}
  1202			/*
  1203			 * opp->rates are used for scaling clocks, so be sure accurate
  1204			 * 'freq' is used, instead what was defined via e.g. Devicetree.
  1205			 */
  1206			opp->rates[0] = freq;
  1207		}
  1208	
  1209		ret = _set_opp(dev, opp_table, opp, freq);
  1210	
  1211		if (target_freq)
  1212			dev_pm_opp_put(opp);
  1213	put_opp_table:
  1214		dev_pm_opp_put_opp_table(opp_table);
  1215		return ret;
  1216	}
  1217	EXPORT_SYMBOL_GPL(dev_pm_opp_set_rate);
  1218	

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-04-11 22:37 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-11 22:36 [krzk-github:n/qcom-ufs-opp-v2 14/16] drivers/opp/core.c:1177:4: warning: variable 'ret' is used uninitialized whenever 'if' condition is false kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.