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 <[email protected]>
Suggested-By: Luben Tukov <[email protected]>
---
 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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to