drm/sched: Avoid infinite waits in the drm_sched_entity_destroy() path
authorBoris Brezillon <boris.brezillon@collabora.com>
Fri, 2 Oct 2020 06:55:18 +0000 (08:55 +0200)
committerChristian König <christian.koenig@amd.com>
Mon, 5 Oct 2020 13:06:33 +0000 (15:06 +0200)
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/
drivers/gpu/drm/scheduler/sched_entity.c

index 1463801189624a571c22c84370d80c4e33fc8246..f8ec277a6aa852d0807ecedeffc2db388a9682bf 100644 (file)
@@ -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);