[drm-intel:for-linux-next-gt 1/1] drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c:497 intel_guc_slpc_set_min_freq() warn: inconsistent returns '&slpc->lock'.

Dan Carpenter dan.carpenter at oracle.com
Tue Aug 30 14:13:26 UTC 2022


tree:   git://anongit.freedesktop.org/drm-intel for-linux-next-gt
head:   f54e515c91806288126f64b37da0c78baa2d8c1f
commit: 95ccf312a1e4f5a1150dd1a0a2d81c1043e33fb6 [1/1] drm/i915/guc/slpc: Allow SLPC to use efficient frequency
config: i386-randconfig-m021-20220829 (https://download.01.org/0day-ci/archive/20220830/202208301957.uLAOt2oy-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-5) 11.3.0

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp at intel.com>
Reported-by: Dan Carpenter <dan.carpenter at oracle.com>

New smatch warnings:
drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c:497 intel_guc_slpc_set_min_freq() warn: inconsistent returns '&slpc->lock'.

vim +497 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c

d41f6f82d319ca Vinay Belgaumkar 2021-07-30  457  int intel_guc_slpc_set_min_freq(struct intel_guc_slpc *slpc, u32 val)
d41f6f82d319ca Vinay Belgaumkar 2021-07-30  458  {
d41f6f82d319ca Vinay Belgaumkar 2021-07-30  459  	struct drm_i915_private *i915 = slpc_to_i915(slpc);
d41f6f82d319ca Vinay Belgaumkar 2021-07-30  460  	intel_wakeref_t wakeref;
d41f6f82d319ca Vinay Belgaumkar 2021-07-30  461  	int ret;
d41f6f82d319ca Vinay Belgaumkar 2021-07-30  462  
025cb07bebfaf9 Vinay Belgaumkar 2021-07-30  463  	if (val < slpc->min_freq ||
025cb07bebfaf9 Vinay Belgaumkar 2021-07-30  464  	    val > slpc->rp0_freq ||
025cb07bebfaf9 Vinay Belgaumkar 2021-07-30  465  	    val > slpc->max_freq_softlimit)
025cb07bebfaf9 Vinay Belgaumkar 2021-07-30  466  		return -EINVAL;
025cb07bebfaf9 Vinay Belgaumkar 2021-07-30  467  
493043feed006f Vinay Belgaumkar 2021-11-01  468  	/* Need a lock now since waitboost can be modifying min as well */
493043feed006f Vinay Belgaumkar 2021-11-01  469  	mutex_lock(&slpc->lock);
493043feed006f Vinay Belgaumkar 2021-11-01  470  
d41f6f82d319ca Vinay Belgaumkar 2021-07-30  471  	with_intel_runtime_pm(&i915->runtime_pm, wakeref) {
493043feed006f Vinay Belgaumkar 2021-11-01  472  
95ccf312a1e4f5 Vinay Belgaumkar 2022-08-19  473  		/* Ignore efficient freq if lower min freq is requested */
95ccf312a1e4f5 Vinay Belgaumkar 2022-08-19  474  		ret = slpc_set_param(slpc,
95ccf312a1e4f5 Vinay Belgaumkar 2022-08-19  475  				     SLPC_PARAM_IGNORE_EFFICIENT_FREQUENCY,
95ccf312a1e4f5 Vinay Belgaumkar 2022-08-19  476  				     val < slpc->rp1_freq);
95ccf312a1e4f5 Vinay Belgaumkar 2022-08-19  477  		if (unlikely(ret)) {
95ccf312a1e4f5 Vinay Belgaumkar 2022-08-19  478  			i915_probe_error(i915, "Failed to toggle efficient freq (%pe)\n",
95ccf312a1e4f5 Vinay Belgaumkar 2022-08-19  479  					 ERR_PTR(ret));
95ccf312a1e4f5 Vinay Belgaumkar 2022-08-19  480  			return ret;

mutex_unlock(&slpc->lock); before returning

95ccf312a1e4f5 Vinay Belgaumkar 2022-08-19  481  		}
95ccf312a1e4f5 Vinay Belgaumkar 2022-08-19  482  
d41f6f82d319ca Vinay Belgaumkar 2021-07-30  483  		ret = slpc_set_param(slpc,
d41f6f82d319ca Vinay Belgaumkar 2021-07-30  484  				     SLPC_PARAM_GLOBAL_MIN_GT_UNSLICE_FREQ_MHZ,
d41f6f82d319ca Vinay Belgaumkar 2021-07-30  485  				     val);
d41f6f82d319ca Vinay Belgaumkar 2021-07-30  486  
d41f6f82d319ca Vinay Belgaumkar 2021-07-30  487  		/* Return standardized err code for sysfs calls */
d41f6f82d319ca Vinay Belgaumkar 2021-07-30  488  		if (ret)
d41f6f82d319ca Vinay Belgaumkar 2021-07-30  489  			ret = -EIO;
d41f6f82d319ca Vinay Belgaumkar 2021-07-30  490  	}
d41f6f82d319ca Vinay Belgaumkar 2021-07-30  491  
025cb07bebfaf9 Vinay Belgaumkar 2021-07-30  492  	if (!ret)
025cb07bebfaf9 Vinay Belgaumkar 2021-07-30  493  		slpc->min_freq_softlimit = val;
025cb07bebfaf9 Vinay Belgaumkar 2021-07-30  494  
493043feed006f Vinay Belgaumkar 2021-11-01  495  	mutex_unlock(&slpc->lock);
493043feed006f Vinay Belgaumkar 2021-11-01  496  
d41f6f82d319ca Vinay Belgaumkar 2021-07-30 @497  	return ret;
d41f6f82d319ca Vinay Belgaumkar 2021-07-30  498  }

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



More information about the dri-devel mailing list