[PATCH 2/2] drm/nouveau: Fix double call to drm_sched_entity_fini()
From: Philipp Stanner
Date: Tue Apr 14 2026 - 09:40:46 EST
nouveau_abi16_chan_fini() does invoke drm_sched_entity_fini() twice:
Once directly, and a second time through nouveau_sched_destroy().
That's likely undesired behavior and might be a bug since
drm_sched_entity_fini() decrements reference counts.
Fix the issue by using the appropriate function,
drm_sched_entity_flush(), to ensure that the entity becomes idle.
Cc: stable@xxxxxxxxxxxxxxx
Fixes: 9a0c32d698c1 ("drm/nouveau: don't fini scheduler if not initialized")
Suggested-by: Danilo Krummrich <dakr@xxxxxxxxxx>
Signed-off-by: Philipp Stanner <phasta@xxxxxxxxxx>
---
drivers/gpu/drm/nouveau/nouveau_abi16.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_abi16.c b/drivers/gpu/drm/nouveau/nouveau_abi16.c
index 7860877d909b..291203121f0c 100644
--- a/drivers/gpu/drm/nouveau/nouveau_abi16.c
+++ b/drivers/gpu/drm/nouveau/nouveau_abi16.c
@@ -176,7 +176,7 @@ nouveau_abi16_chan_fini(struct nouveau_abi16 *abi16,
/* Cancel all jobs from the entity's queue. */
if (chan->sched)
- drm_sched_entity_fini(&chan->sched->entity);
+ drm_sched_entity_kill(&chan->sched->entity);
if (chan->chan)
nouveau_channel_idle(chan->chan);
--
2.49.0