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;
}