Stop the userq submission prior to removing userq in the
amdgpu_userq_pre_reset().

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

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
index a7d5ca741a3b..c60365bbd7f6 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
@@ -1540,6 +1540,8 @@ void amdgpu_userq_pre_reset(struct amdgpu_device *adev)
        struct amdgpu_usermode_queue *queue;
        unsigned long queue_id;
 
+       amdgpu_mes_suspend(adev, 0);
+
        /* TODO: We probably need a new lock for the queue state */
        xa_for_each(&adev->userq_doorbell_xa, queue_id, queue) {
                if (queue->state == AMDGPU_USERQ_STATE_MAPPED) {
@@ -1587,6 +1589,6 @@ int amdgpu_userq_post_reset(struct amdgpu_device *adev, 
bool vram_lost)
                        queue->state = AMDGPU_USERQ_STATE_MAPPED;
                }
        }
-
+       amdgpu_mes_resume(adev, 0);
        return r;
 }
-- 
2.34.1

Reply via email to