diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c index 84453c1c4b07..cabb0fc28610 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | |||
@@ -88,7 +88,7 @@ static struct fence *amdgpu_sched_dependency(struct amd_sched_job *sched_job) | |||
88 | 88 | ||
89 | static struct fence *amdgpu_sched_run_job(struct amd_sched_job *sched_job) | 89 | static struct fence *amdgpu_sched_run_job(struct amd_sched_job *sched_job) |
90 | { | 90 | { |
91 | struct amdgpu_fence *fence = NULL; | 91 | struct fence *fence = NULL; |
92 | struct amdgpu_job *job; | 92 | struct amdgpu_job *job; |
93 | int r; | 93 | int r; |
94 | 94 | ||
@@ -98,21 +98,19 @@ static struct fence *amdgpu_sched_run_job(struct amd_sched_job *sched_job) | |||
98 | } | 98 | } |
99 | job = to_amdgpu_job(sched_job); | 99 | job = to_amdgpu_job(sched_job); |
100 | trace_amdgpu_sched_run_job(job); | 100 | trace_amdgpu_sched_run_job(job); |
101 | r = amdgpu_ib_schedule(job->ring, job->num_ibs, job->ibs, job->owner); | 101 | r = amdgpu_ib_schedule(job->ring, job->num_ibs, job->ibs, |
102 | job->owner, &fence); | ||
102 | if (r) { | 103 | if (r) { |
103 | DRM_ERROR("Error scheduling IBs (%d)\n", r); | 104 | DRM_ERROR("Error scheduling IBs (%d)\n", r); |
104 | goto err; | 105 | goto err; |
105 | } | 106 | } |
106 | 107 | ||
107 | fence = job->ibs[job->num_ibs - 1].fence; | ||
108 | fence_get(&fence->base); | ||
109 | |||
110 | err: | 108 | err: |
111 | if (job->free_job) | 109 | if (job->free_job) |
112 | job->free_job(job); | 110 | job->free_job(job); |
113 | 111 | ||
114 | kfree(job); | 112 | kfree(job); |
115 | return fence ? &fence->base : NULL; | 113 | return fence; |
116 | } | 114 | } |
117 | 115 | ||
118 | struct amd_sched_backend_ops amdgpu_sched_ops = { | 116 | struct amd_sched_backend_ops amdgpu_sched_ops = { |