summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
diff options
context:
space:
mode:
authorAndrey Grodzovsky <andrey.grodzovsky@amd.com>2017-10-24 13:30:16 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-12-04 16:33:11 -0500
commita4176cb484ac457a08b44c93da06fce09c6e281c (patch)
tree65a7ee568e4c895812bdee38d1675280c838d7f2 /drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
parent83f4b1180155f2d65472ce943a1f051215030560 (diff)
downloadlinux-a4176cb484ac457a08b44c93da06fce09c6e281c.tar.gz
linux-a4176cb484ac457a08b44c93da06fce09c6e281c.tar.bz2
linux-a4176cb484ac457a08b44c93da06fce09c6e281c.zip
drm/amdgpu: Remove job->s_entity to avoid keeping reference to stale pointer.
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>
Diffstat (limited to 'drivers/gpu/drm/amd/scheduler/gpu_scheduler.h')
-rw-r--r--drivers/gpu/drm/amd/scheduler/gpu_scheduler.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
index f9e3a83cddc6..b590fcc2786a 100644
--- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
@@ -91,7 +91,6 @@ struct amd_sched_fence {
struct amd_sched_job {
struct spsc_node queue_node;
struct amd_gpu_scheduler *sched;
- struct amd_sched_entity *s_entity;
struct amd_sched_fence *s_fence;
struct dma_fence_cb finish_cb;
struct work_struct finish_work;
@@ -125,7 +124,8 @@ static inline bool amd_sched_invalidate_job(struct amd_sched_job *s_job, int thr
* these functions should be implemented in driver side
*/
struct amd_sched_backend_ops {
- struct dma_fence *(*dependency)(struct amd_sched_job *sched_job);
+ struct dma_fence *(*dependency)(struct amd_sched_job *sched_job,
+ struct amd_sched_entity *s_entity);
struct dma_fence *(*run_job)(struct amd_sched_job *sched_job);
void (*timedout_job)(struct amd_sched_job *sched_job);
void (*free_job)(struct amd_sched_job *sched_job);
@@ -161,7 +161,8 @@ int amd_sched_entity_init(struct amd_gpu_scheduler *sched,
uint32_t jobs, atomic_t* guilty);
void amd_sched_entity_fini(struct amd_gpu_scheduler *sched,
struct amd_sched_entity *entity);
-void amd_sched_entity_push_job(struct amd_sched_job *sched_job);
+void amd_sched_entity_push_job(struct amd_sched_job *sched_job,
+ struct amd_sched_entity *entity);
void amd_sched_entity_set_rq(struct amd_sched_entity *entity,
struct amd_sched_rq *rq);