aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/amd/scheduler/gpu_scheduler.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
index 8b2becd1aa07..a5ff9458d359 100644
--- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
@@ -229,6 +229,14 @@ static void amd_sched_entity_wakeup(struct fence *f, struct fence_cb *cb)
229 amd_sched_wakeup(entity->sched); 229 amd_sched_wakeup(entity->sched);
230} 230}
231 231
232static void amd_sched_entity_clear_dep(struct fence *f, struct fence_cb *cb)
233{
234 struct amd_sched_entity *entity =
235 container_of(cb, struct amd_sched_entity, cb);
236 entity->dependency = NULL;
237 fence_put(f);
238}
239
232static bool amd_sched_entity_add_dependency_cb(struct amd_sched_entity *entity) 240static bool amd_sched_entity_add_dependency_cb(struct amd_sched_entity *entity)
233{ 241{
234 struct amd_gpu_scheduler *sched = entity->sched; 242 struct amd_gpu_scheduler *sched = entity->sched;
@@ -251,7 +259,7 @@ static bool amd_sched_entity_add_dependency_cb(struct amd_sched_entity *entity)
251 } 259 }
252 260
253 /* Wait for fence to be scheduled */ 261 /* Wait for fence to be scheduled */
254 entity->cb.func = amd_sched_entity_wakeup; 262 entity->cb.func = amd_sched_entity_clear_dep;
255 list_add_tail(&entity->cb.node, &s_fence->scheduled_cb); 263 list_add_tail(&entity->cb.node, &s_fence->scheduled_cb);
256 return true; 264 return true;
257 } 265 }