]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/panthor: Fix a leak when a group is evicted before the tiler OOM is serviced
authorBoris Brezillon <boris.brezillon@collabora.com>
Thu, 25 Jun 2026 12:40:35 +0000 (14:40 +0200)
committerLiviu Dudau <liviu.dudau@arm.com>
Tue, 30 Jun 2026 14:26:55 +0000 (15:26 +0100)
A group ref is tied to the pending tiler_oom_work, so we need to release
it if the cancel was effective.

Fixes: de8548813824 ("drm/panthor: Add the scheduler logical block")
Reported-by: sashiko-bot@kernel.org
Closes: https://sashiko.dev/#/patchset/20260623-panthor-signal-from-irq-v3-0-2ece396f8ee0@collabora.com?part=7
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Liviu Dudau <liviu.dudau@arm.com>
Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
Link: https://patch.msgid.link/20260625-panthor-misc-fixes-v1-9-b67ed973fea6@collabora.com
drivers/gpu/drm/panthor/panthor_sched.c

index ab3e13e44a269a006fe7e68176e65ecf80480129..5fe95d03f23eff26905be2e888982d0f8916bd69 100644 (file)
@@ -1057,7 +1057,8 @@ group_unbind_locked(struct panthor_group *group)
 
        /* Tiler OOM events will be re-issued next time the group is scheduled. */
        atomic_set(&group->tiler_oom, 0);
-       cancel_work(&group->tiler_oom_work);
+       if (cancel_work(&group->tiler_oom_work))
+               group_put(group);
 
        for (u32 i = 0; i < group->queue_count; i++)
                group->queues[i]->doorbell_id = -1;