@@ -836,7 +836,9 @@ int amdgpu_mes_map_legacy_queue(struct amdgpu_device *adev,
836836 queue_input .mqd_addr = amdgpu_bo_gpu_offset (ring -> mqd_obj );
837837 queue_input .wptr_addr = ring -> wptr_gpu_addr ;
838838
839+ amdgpu_mes_lock (& adev -> mes );
839840 r = adev -> mes .funcs -> map_legacy_queue (& adev -> mes , & queue_input );
841+ amdgpu_mes_unlock (& adev -> mes );
840842 if (r )
841843 DRM_ERROR ("failed to map legacy queue\n" );
842844
@@ -859,7 +861,9 @@ int amdgpu_mes_unmap_legacy_queue(struct amdgpu_device *adev,
859861 queue_input .trail_fence_addr = gpu_addr ;
860862 queue_input .trail_fence_data = seq ;
861863
864+ amdgpu_mes_lock (& adev -> mes );
862865 r = adev -> mes .funcs -> unmap_legacy_queue (& adev -> mes , & queue_input );
866+ amdgpu_mes_unlock (& adev -> mes );
863867 if (r )
864868 DRM_ERROR ("failed to unmap legacy queue\n" );
865869
@@ -886,7 +890,9 @@ int amdgpu_mes_reset_legacy_queue(struct amdgpu_device *adev,
886890 queue_input .vmid = vmid ;
887891 queue_input .use_mmio = use_mmio ;
888892
893+ amdgpu_mes_lock (& adev -> mes );
889894 r = adev -> mes .funcs -> reset_legacy_queue (& adev -> mes , & queue_input );
895+ amdgpu_mes_unlock (& adev -> mes );
890896 if (r )
891897 DRM_ERROR ("failed to reset legacy queue\n" );
892898
@@ -916,7 +922,9 @@ uint32_t amdgpu_mes_rreg(struct amdgpu_device *adev, uint32_t reg)
916922 goto error ;
917923 }
918924
925+ amdgpu_mes_lock (& adev -> mes );
919926 r = adev -> mes .funcs -> misc_op (& adev -> mes , & op_input );
927+ amdgpu_mes_unlock (& adev -> mes );
920928 if (r )
921929 DRM_ERROR ("failed to read reg (0x%x)\n" , reg );
922930 else
@@ -944,7 +952,9 @@ int amdgpu_mes_wreg(struct amdgpu_device *adev,
944952 goto error ;
945953 }
946954
955+ amdgpu_mes_lock (& adev -> mes );
947956 r = adev -> mes .funcs -> misc_op (& adev -> mes , & op_input );
957+ amdgpu_mes_unlock (& adev -> mes );
948958 if (r )
949959 DRM_ERROR ("failed to write reg (0x%x)\n" , reg );
950960
@@ -971,7 +981,9 @@ int amdgpu_mes_reg_write_reg_wait(struct amdgpu_device *adev,
971981 goto error ;
972982 }
973983
984+ amdgpu_mes_lock (& adev -> mes );
974985 r = adev -> mes .funcs -> misc_op (& adev -> mes , & op_input );
986+ amdgpu_mes_unlock (& adev -> mes );
975987 if (r )
976988 DRM_ERROR ("failed to reg_write_reg_wait\n" );
977989
@@ -996,7 +1008,9 @@ int amdgpu_mes_reg_wait(struct amdgpu_device *adev, uint32_t reg,
9961008 goto error ;
9971009 }
9981010
1011+ amdgpu_mes_lock (& adev -> mes );
9991012 r = adev -> mes .funcs -> misc_op (& adev -> mes , & op_input );
1013+ amdgpu_mes_unlock (& adev -> mes );
10001014 if (r )
10011015 DRM_ERROR ("failed to reg_write_reg_wait\n" );
10021016
@@ -1687,7 +1701,9 @@ static int amdgpu_mes_set_enforce_isolation(struct amdgpu_device *adev,
16871701 goto error ;
16881702 }
16891703
1704+ amdgpu_mes_lock (& adev -> mes );
16901705 r = adev -> mes .funcs -> misc_op (& adev -> mes , & op_input );
1706+ amdgpu_mes_unlock (& adev -> mes );
16911707 if (r )
16921708 dev_err (adev -> dev , "failed to change_config.\n" );
16931709
0 commit comments