CC: [email protected]
CC: Linux Memory Management List <[email protected]>
TO: Alex Deucher <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 
master
head:   f30a24ed97b401416118756fa35fbe5d28f999e3
commit: c8d265840be604ebaa66a426913ecd4adb619311 [3329/3897] drm/amdgpu/UAPI: 
add new CTX OP for setting profile modes
:::::: branch date: 3 days ago
:::::: commit date: 4 days ago
config: i386-randconfig-m021-20211128 
(https://download.01.org/0day-ci/archive/20211129/[email protected]/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

smatch warnings:
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c:267 amdgpu_ctx_do_set_pstate_profile() 
warn: variable dereferenced before check 'ctx' (see line 262)

vim +/ctx +267 drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c

47f38501f11fa4 Christian König 2015-08-04  258  
c8d265840be604 Alex Deucher    2021-11-23  259  static int 
amdgpu_ctx_do_set_pstate_profile(struct amdgpu_ctx *ctx,
c8d265840be604 Alex Deucher    2021-11-23  260                                  
            u32 pstate_profile)
c8d265840be604 Alex Deucher    2021-11-23  261  {
c8d265840be604 Alex Deucher    2021-11-23 @262          struct amdgpu_device 
*adev = ctx->adev;
c8d265840be604 Alex Deucher    2021-11-23  263          const struct 
amd_pm_funcs *pp_funcs = adev->powerplay.pp_funcs;
c8d265840be604 Alex Deucher    2021-11-23  264          enum 
amd_dpm_forced_level level, current_level;
c8d265840be604 Alex Deucher    2021-11-23  265          int r = 0;
c8d265840be604 Alex Deucher    2021-11-23  266  
c8d265840be604 Alex Deucher    2021-11-23 @267          if (!ctx)
c8d265840be604 Alex Deucher    2021-11-23  268                  return -EINVAL;
c8d265840be604 Alex Deucher    2021-11-23  269  
c8d265840be604 Alex Deucher    2021-11-23  270          
mutex_lock(&adev->pstate_profile_ctx_lock);
c8d265840be604 Alex Deucher    2021-11-23  271          if 
(adev->pstate_profile_ctx && adev->pstate_profile_ctx != ctx) {
c8d265840be604 Alex Deucher    2021-11-23  272                  r = -EBUSY;
c8d265840be604 Alex Deucher    2021-11-23  273                  goto done;
c8d265840be604 Alex Deucher    2021-11-23  274          }
c8d265840be604 Alex Deucher    2021-11-23  275  
c8d265840be604 Alex Deucher    2021-11-23  276          switch (pstate_profile) 
{
c8d265840be604 Alex Deucher    2021-11-23  277          case 
AMDGPU_CTX_PSTATE_PROFILE_NONE:
c8d265840be604 Alex Deucher    2021-11-23  278                  level = 
AMD_DPM_FORCED_LEVEL_AUTO;
c8d265840be604 Alex Deucher    2021-11-23  279                  break;
c8d265840be604 Alex Deucher    2021-11-23  280          case 
AMDGPU_CTX_PSTATE_PROFILE_STANDARD:
c8d265840be604 Alex Deucher    2021-11-23  281                  level = 
AMD_DPM_FORCED_LEVEL_PROFILE_STANDARD;
c8d265840be604 Alex Deucher    2021-11-23  282                  break;
c8d265840be604 Alex Deucher    2021-11-23  283          case 
AMDGPU_CTX_PSTATE_PROFILE_MIN_SCLK:
c8d265840be604 Alex Deucher    2021-11-23  284                  level = 
AMD_DPM_FORCED_LEVEL_PROFILE_MIN_SCLK;
c8d265840be604 Alex Deucher    2021-11-23  285                  break;
c8d265840be604 Alex Deucher    2021-11-23  286          case 
AMDGPU_CTX_PSTATE_PROFILE_MIN_MCLK:
c8d265840be604 Alex Deucher    2021-11-23  287                  level = 
AMD_DPM_FORCED_LEVEL_PROFILE_MIN_MCLK;
c8d265840be604 Alex Deucher    2021-11-23  288                  break;
c8d265840be604 Alex Deucher    2021-11-23  289          case 
AMDGPU_CTX_PSTATE_PROFILE_PEAK:
c8d265840be604 Alex Deucher    2021-11-23  290                  level = 
AMD_DPM_FORCED_LEVEL_PROFILE_PEAK;
c8d265840be604 Alex Deucher    2021-11-23  291                  break;
c8d265840be604 Alex Deucher    2021-11-23  292          default:
c8d265840be604 Alex Deucher    2021-11-23  293                  r = -EINVAL;
c8d265840be604 Alex Deucher    2021-11-23  294                  goto done;
c8d265840be604 Alex Deucher    2021-11-23  295          }
c8d265840be604 Alex Deucher    2021-11-23  296  
c8d265840be604 Alex Deucher    2021-11-23  297          if 
(pp_funcs->get_performance_level)
c8d265840be604 Alex Deucher    2021-11-23  298                  current_level = 
amdgpu_dpm_get_performance_level(adev);
c8d265840be604 Alex Deucher    2021-11-23  299          else
c8d265840be604 Alex Deucher    2021-11-23  300                  current_level = 
adev->pm.dpm.forced_level;
c8d265840be604 Alex Deucher    2021-11-23  301  
c8d265840be604 Alex Deucher    2021-11-23  302          if ((current_level != 
level) && pp_funcs->force_performance_level) {
c8d265840be604 Alex Deucher    2021-11-23  303                  
mutex_lock(&adev->pm.mutex);
c8d265840be604 Alex Deucher    2021-11-23  304                  r = 
amdgpu_dpm_force_performance_level(adev, level);
c8d265840be604 Alex Deucher    2021-11-23  305                  if (!r)
c8d265840be604 Alex Deucher    2021-11-23  306                          
adev->pm.dpm.forced_level = level;
c8d265840be604 Alex Deucher    2021-11-23  307                  
mutex_unlock(&adev->pm.mutex);
c8d265840be604 Alex Deucher    2021-11-23  308          }
c8d265840be604 Alex Deucher    2021-11-23  309  
c8d265840be604 Alex Deucher    2021-11-23  310          if (level == 
AMD_DPM_FORCED_LEVEL_AUTO)
c8d265840be604 Alex Deucher    2021-11-23  311                  
adev->pstate_profile_ctx = NULL;
c8d265840be604 Alex Deucher    2021-11-23  312          else
c8d265840be604 Alex Deucher    2021-11-23  313                  
adev->pstate_profile_ctx = ctx;
c8d265840be604 Alex Deucher    2021-11-23  314  done:
c8d265840be604 Alex Deucher    2021-11-23  315          
mutex_unlock(&adev->pstate_profile_ctx_lock);
c8d265840be604 Alex Deucher    2021-11-23  316  
c8d265840be604 Alex Deucher    2021-11-23  317          return r;
c8d265840be604 Alex Deucher    2021-11-23  318  }
c8d265840be604 Alex Deucher    2021-11-23  319  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to