During GPU reset, the ring scheduler should be parked
until all IP blocks have been resumed.

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

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index bd4eb97336b1..a23950f3f634 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -5793,8 +5793,10 @@ int amdgpu_device_gpu_recover(struct amdgpu_device *adev,
 
        amdgpu_device_halt_activities(adev, job, reset_context, &device_list,
                                      hive, need_emergency_restart);
-       if (need_emergency_restart)
-               goto skip_sched_resume;
+       if (need_emergency_restart) {
+               amdgpu_device_gpu_resume(adev, &device_list, 
need_emergency_restart);
+               goto reset_unlock;
+       }
        /*
         * Must check guilty signal here since after this point all old
         * HW fences are force signaled.
@@ -5804,18 +5806,17 @@ int amdgpu_device_gpu_recover(struct amdgpu_device 
*adev,
        if (job && (dma_fence_get_status(&job->hw_fence->base) > 0)) {
                job_signaled = true;
                dev_info(adev->dev, "Guilty job already signaled, skipping HW 
reset");
-               goto skip_hw_reset;
+               goto post_resume;
        }
 
        r = amdgpu_device_asic_reset(adev, &device_list, reset_context);
        if (r)
                goto reset_unlock;
-skip_hw_reset:
+post_resume:
+       amdgpu_device_gpu_resume(adev, &device_list, need_emergency_restart);
        r = amdgpu_device_sched_resume(&device_list, reset_context, 
job_signaled);
        if (r)
                goto reset_unlock;
-skip_sched_resume:
-       amdgpu_device_gpu_resume(adev, &device_list, need_emergency_restart);
 reset_unlock:
        amdgpu_device_recovery_put_reset_lock(adev, &device_list);
        amdgpu_ras_post_reset(adev, &device_list);
-- 
2.34.1

Reply via email to