diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_job.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c index 87b75d726ae8..347962ea17ab 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | |||
@@ -89,21 +89,23 @@ static void amdgpu_job_free_resources(struct amdgpu_job *job) | |||
89 | 89 | ||
90 | for (i = 0; i < job->num_ibs; ++i) | 90 | for (i = 0; i < job->num_ibs; ++i) |
91 | amdgpu_ib_free(job->adev, &job->ibs[i], f); | 91 | amdgpu_ib_free(job->adev, &job->ibs[i], f); |
92 | fence_put(job->fence); | ||
93 | |||
94 | amdgpu_sync_free(&job->sync); | ||
95 | } | 92 | } |
96 | 93 | ||
97 | void amdgpu_job_free_cb(struct amd_sched_job *s_job) | 94 | void amdgpu_job_free_cb(struct amd_sched_job *s_job) |
98 | { | 95 | { |
99 | struct amdgpu_job *job = container_of(s_job, struct amdgpu_job, base); | 96 | struct amdgpu_job *job = container_of(s_job, struct amdgpu_job, base); |
100 | 97 | ||
98 | fence_put(job->fence); | ||
99 | amdgpu_sync_free(&job->sync); | ||
101 | kfree(job); | 100 | kfree(job); |
102 | } | 101 | } |
103 | 102 | ||
104 | void amdgpu_job_free(struct amdgpu_job *job) | 103 | void amdgpu_job_free(struct amdgpu_job *job) |
105 | { | 104 | { |
106 | amdgpu_job_free_resources(job); | 105 | amdgpu_job_free_resources(job); |
106 | |||
107 | fence_put(job->fence); | ||
108 | amdgpu_sync_free(&job->sync); | ||
107 | kfree(job); | 109 | kfree(job); |
108 | } | 110 | } |
109 | 111 | ||