Suspend the drm internal clients has a deadlock risk as acquiring
it while holding the reset domain lock inverts the ordering
established elsewhere (clientlist_mutex -> ... -> reset_domain->sem).

Reset AMDGPU can prevent the user space clients further accessing by
using the reset semaphore, so removing the drm_client_dev_suspend() |
resume() in the reset path.

Signed-off-by: Prike Liang <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index d7640da9f6de..bd4eb97336b1 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -5210,8 +5210,6 @@ int amdgpu_device_reinit_after_reset(struct 
amdgpu_reset_context *reset_context)
                                if (r)
                                        goto out;
 
-                               drm_client_dev_resume(adev_to_drm(tmp_adev));
-
                                /*
                                 * The GPU enters bad state once faulty pages
                                 * by ECC has reached the threshold, and ras
@@ -5544,8 +5542,6 @@ static void amdgpu_device_halt_activities(struct 
amdgpu_device *adev,
                 */
                amdgpu_unregister_gpu_instance(tmp_adev);
 
-               drm_client_dev_suspend(adev_to_drm(tmp_adev));
-
                /* disable ras on ALL IPs */
                if (!need_emergency_restart && !amdgpu_reset_in_dpc(adev))
                        amdgpu_ras_suspend(tmp_adev);
-- 
2.34.1

Reply via email to