Blob Blame History Raw
From: Monk Liu <Monk.Liu@amd.com>
Date: Thu, 11 May 2017 13:59:15 +0800
Subject: drm/amdgpu:use job's list instead of check fence
Git-commit: 4f059ecdcec2dd6fab757a16cc552093bfd321ee
Patch-mainline: v4.13-rc1
References: FATE#326289 FATE#326079 FATE#326049 FATE#322398 FATE#326166

because if the fence is really signaled, it could already
released so the fence pointer is a wild pointer, but if
we use job->base.node we are safe because job will not
be released untill amdgpu_job_timedout finished.

Signed-off-by: Monk Liu <Monk.Liu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Petr Tesarik <ptesarik@suse.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -2640,9 +2640,9 @@ int amdgpu_sriov_gpu_reset(struct amdgpu
 		if (job && j != i)
 			continue;
 
-		/* here give the last chance to check if fence signaled
+		/* here give the last chance to check if job removed from mirror-list
 		 * since we already pay some time on kthread_park */
-		if (job && dma_fence_is_signaled(&job->base.s_fence->finished)) {
+		if (job && list_empty(&job->base.node)) {
 			kthread_unpark(ring->sched.thread);
 			goto give_up_reset;
 		}