drm/amd/powerplay: fix pcie sysfs interface when set wrong value
authorLikun Gao <Likun.Gao@amd.com>
Mon, 4 Mar 2019 02:46:27 +0000 (10:46 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 19 Mar 2019 20:36:48 +0000 (15:36 -0500)
The operation of mutex_unlock smu->mutex should be done when forced
level is larger than NUM_LINK_LEVELS in the function of force_clk_levels.

Reported-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Reviewed-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/vega20_ppt.c

index c66ad3b223d39ce675e61a33bc4fddeac6fcfc30..b71ecbe66ab4362778d1679c7ec8174ccc1bb023 100644 (file)
@@ -1200,8 +1200,10 @@ static int vega20_force_clk_levels(struct smu_context *smu,
 
        case PP_PCIE:
                if (soft_min_level >= NUM_LINK_LEVELS ||
-                   soft_max_level >= NUM_LINK_LEVELS)
-                       return -EINVAL;
+                   soft_max_level >= NUM_LINK_LEVELS) {
+                       ret = -EINVAL;
+                       break;
+               }
 
                ret = smu_send_smc_msg_with_param(smu,
                                SMU_MSG_SetMinLinkDpmByIndex, soft_min_level);