Browse Source

drm/amdgpu:use job's list instead of check fence

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>
Monk Liu 8 years ago
parent
commit
4f059ecdce
1 changed files with 2 additions and 2 deletions
  1. 2 2
      drivers/gpu/drm/amd/amdgpu/amdgpu_device.c

+ 2 - 2
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c

@@ -2644,9 +2644,9 @@ int amdgpu_sriov_gpu_reset(struct amdgpu_device *adev, struct amdgpu_job *job)
 		if (job && j != i)
 		if (job && j != i)
 			continue;
 			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 */
 		 * 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);
 			kthread_unpark(ring->sched.thread);
 			goto give_up_reset;
 			goto give_up_reset;
 		}
 		}