summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Brezillon <boris.brezillon@collabora.com>2020-10-02 09:55:18 +0300
committerChristian König <christian.koenig@amd.com>2020-10-05 16:06:33 +0300
commit170fb58ee329bcfa8dc4c0c5eab0ea5af7fb7f3b (patch)
treedf3cea0adea84ed66528d39e1ce9aa4f9b221834
parent01370532b72e954989a3175eabe47f90fc6d2a6b (diff)
downloadlinux-170fb58ee329bcfa8dc4c0c5eab0ea5af7fb7f3b.tar.xz
drm/sched: Avoid infinite waits in the drm_sched_entity_destroy() path
If we don't initialize the entity to idle and the entity is never scheduled before being destroyed we end up with an infinite wait in the destroy path. v2: - Add Steven's R-b Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Steven Price <steven.price@arm.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Christian König <christian.koenig@amd.com> Link: https://patchwork.freedesktop.org/patch/393486/
-rw-r--r--drivers/gpu/drm/scheduler/sched_entity.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/scheduler/sched_entity.c b/drivers/gpu/drm/scheduler/sched_entity.c
index 146380118962..f8ec277a6aa8 100644
--- a/drivers/gpu/drm/scheduler/sched_entity.c
+++ b/drivers/gpu/drm/scheduler/sched_entity.c
@@ -73,6 +73,9 @@ int drm_sched_entity_init(struct drm_sched_entity *entity,
init_completion(&entity->entity_idle);
+ /* We start in an idle state. */
+ complete(&entity->entity_idle);
+
spin_lock_init(&entity->rq_lock);
spsc_queue_init(&entity->job_queue);