drm/amdgpu: fix no-vmid job
authorChunming Zhou <David1.Zhou@amd.com>
Fri, 21 Apr 2017 09:58:42 +0000 (17:58 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 28 Apr 2017 21:32:55 +0000 (17:32 -0400)
[  132.036658] amdgpu 0000:22:00.0: VM IB without ID
[  132.036709] [drm:amdgpu_job_run [amdgpu]] *ERROR* Error scheduling IBs (-22)
[  132.036755] [drm:amd_sched_main [amdgpu]] *ERROR* Failed to run job!

root cause is fence is signaled during sync transfer.

Signed-off-by: Chunming Zhou <David1.Zhou@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_job.c

index 86a12424c162ca6eeec8412e7fc8fb8292e3f7ab..c3cfeb335d990113ca6246acfbfc8d25b46ed921 100644 (file)
@@ -139,7 +139,7 @@ static struct dma_fence *amdgpu_job_dependency(struct amd_sched_job *sched_job)
 
        struct dma_fence *fence = amdgpu_sync_get_fence(&job->sync);
 
-       if (fence == NULL && vm && !job->vm_id) {
+       while (fence == NULL && vm && !job->vm_id) {
                struct amdgpu_ring *ring = job->ring;
                int r;