aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrey Grodzovsky <andrey.grodzovsky@amd.com>2019-10-24 15:44:10 -0400
committerAlex Deucher <alexander.deucher@amd.com>2019-10-30 11:56:15 -0400
commit57c0f58e9f562089de5f0b60da103677d232374c (patch)
tree9caf7ddd11f101e5f5b9d421df4daaf72b76a4f7
parent167bf96014a095753053595f3224fcdeb49ac3c8 (diff)
drm/amdgpu: If amdgpu_ib_schedule fails return back the error.
Use ERR_PTR to return back the error happened during amdgpu_ib_schedule. Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_job.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
index 9d76e0923a5a..96b2a31ccfed 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
@@ -218,7 +218,7 @@ static struct dma_fence *amdgpu_job_run(struct drm_sched_job *sched_job)
218 struct amdgpu_ring *ring = to_amdgpu_ring(sched_job->sched); 218 struct amdgpu_ring *ring = to_amdgpu_ring(sched_job->sched);
219 struct dma_fence *fence = NULL, *finished; 219 struct dma_fence *fence = NULL, *finished;
220 struct amdgpu_job *job; 220 struct amdgpu_job *job;
221 int r; 221 int r = 0;
222 222
223 job = to_amdgpu_job(sched_job); 223 job = to_amdgpu_job(sched_job);
224 finished = &job->base.s_fence->finished; 224 finished = &job->base.s_fence->finished;
@@ -243,6 +243,8 @@ static struct dma_fence *amdgpu_job_run(struct drm_sched_job *sched_job)
243 job->fence = dma_fence_get(fence); 243 job->fence = dma_fence_get(fence);
244 244
245 amdgpu_job_free_resources(job); 245 amdgpu_job_free_resources(job);
246
247 fence = r ? ERR_PTR(r) : fence;
246 return fence; 248 return fence;
247} 249}
248 250