[bug report] drm/amdgpu: Add support for CIK parts

Dan Carpenter dan.carpenter at oracle.com
Thu Jan 26 06:42:38 UTC 2017


This one still needs to be fixed as well.

regards,
dan carpenter

On Tue, Dec 13, 2016 at 01:34:17PM +0300, Dan Carpenter wrote:
> Hello Alex Deucher,
> 
> The patch a2e73f56fa62: "drm/amdgpu: Add support for CIK parts" from
> Apr 20, 2015, leads to the following static checker warning:
> 
> 	drivers/gpu/drm/amd/amdgpu/ci_dpm.c:6293 ci_dpm_sw_init()
> 	warn: 'adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries' double freed
> 
> 	drivers/gpu/drm/amd/amdgpu/ci_dpm.c:6293 ci_dpm_sw_init()
> 	warn: 'adev->pm.dpm.ps' double freed
> 
> drivers/gpu/drm/amd/amdgpu/ci_dpm.c
>   6274  
>   6275          ret = ci_dpm_init_microcode(adev);
>   6276          if (ret)
>   6277                  return ret;
>   6278  
>   6279          INIT_WORK(&adev->pm.dpm.thermal.work, amdgpu_dpm_thermal_work_handler);
>   6280          mutex_lock(&adev->pm.mutex);
>   6281          ret = ci_dpm_init(adev);
> 
> ci_dpm_init() has built-in calls to ci_dpm_fini().
> 
>   6282          if (ret)
>   6283                  goto dpm_failed;
>   6284          adev->pm.dpm.current_ps = adev->pm.dpm.requested_ps = adev->pm.dpm.boot_ps;
>   6285          if (amdgpu_dpm == 1)
>   6286                  amdgpu_pm_print_power_states(adev);
>   6287          mutex_unlock(&adev->pm.mutex);
>   6288          DRM_INFO("amdgpu: dpm initialized\n");
>   6289  
>   6290          return 0;
>   6291  
>   6292  dpm_failed:
>   6293          ci_dpm_fini(adev);
> 
> Then we call it again here.  This style of error handling is a layering
> violation and people think it makes the code so much simpler but it
> really doesn't at all...  :/  Just have every function unwind it's own
> allocations, doing it that way basically writes a mirroring de-allocate
> function for every allocator for no effort.
> 
>   6294          mutex_unlock(&adev->pm.mutex);
>   6295          DRM_ERROR("amdgpu: dpm initialization failed\n");
>   6296          return ret;
>   6297  }
> 
> regards,
> dan carpenter


More information about the dri-devel mailing list