Moving mutex unlock and lock outside of the "if" statement as it can be shown that the mutex will be taken and released, regardless of the value checked in the if statement. Signed-off-by: Alex Jivin <alex.jivin@xxxxxxx> Suggested-By: Luben Tukov <luben.tuikov@xxxxxxx> --- drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c index 838d6d51904c..d2401379bd33 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c @@ -3559,16 +3559,14 @@ void amdgpu_dpm_enable_uvd(struct amdgpu_device *adev, bool enable) int ret = 0; if (adev->family == AMDGPU_FAMILY_SI) { + mutex_lock(&adev->pm.mutex); if (enable) { - mutex_lock(&adev->pm.mutex); adev->pm.dpm.uvd_active = true; adev->pm.dpm.state = POWER_STATE_TYPE_INTERNAL_UVD; - mutex_unlock(&adev->pm.mutex); } else { - mutex_lock(&adev->pm.mutex); adev->pm.dpm.uvd_active = false; - mutex_unlock(&adev->pm.mutex); } + mutex_unlock(&adev->pm.mutex); amdgpu_pm_compute_clocks(adev); } else { @@ -3596,17 +3594,15 @@ void amdgpu_dpm_enable_vce(struct amdgpu_device *adev, bool enable) int ret = 0; if (adev->family == AMDGPU_FAMILY_SI) { + mutex_lock(&adev->pm.mutex); if (enable) { - mutex_lock(&adev->pm.mutex); adev->pm.dpm.vce_active = true; /* XXX select vce level based on ring/task */ adev->pm.dpm.vce_level = AMD_VCE_LEVEL_AC_ALL; - mutex_unlock(&adev->pm.mutex); } else { - mutex_lock(&adev->pm.mutex); adev->pm.dpm.vce_active = false; - mutex_unlock(&adev->pm.mutex); } + mutex_unlock(&adev->pm.mutex); amdgpu_pm_compute_clocks(adev); } else { -- 2.17.1 _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx