]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/panthor: Fix potential invalid pointer deref in group_process_tiler_oom()
authorBoris Brezillon <boris.brezillon@collabora.com>
Thu, 25 Jun 2026 12:40:30 +0000 (14:40 +0200)
committerLiviu Dudau <liviu.dudau@arm.com>
Tue, 30 Jun 2026 14:26:55 +0000 (15:26 +0100)
If heaps is an ERR_PTR(), panthor_heap_pool_put() will deref an invalid
pointer. Make sure we set it to NULL in that case.

Fixes: de8548813824 ("drm/panthor: Add the scheduler logical block")
Reported-by: sashiko-bot@kernel.org
Closes: https://sashiko.dev/#/patchset/20260625-panthor-signal-from-irq-v5-0-8836a74e0ef9@collabora.com?part=2
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-4-b67ed973fea6@collabora.com
drivers/gpu/drm/panthor/panthor_sched.c

index e97f29469d28ac3f374ef3da2bb2d3c5b1e71cac..8fd4d97b062e0e8e76b798e2724295fcb568c292 100644 (file)
@@ -1600,7 +1600,10 @@ static int group_process_tiler_oom(struct panthor_group *group, u32 cs_id)
        if (unlikely(csg_id < 0))
                return 0;
 
-       if (IS_ERR(heaps) || frag_end > vt_end || vt_end >= vt_start) {
+       if (IS_ERR(heaps)) {
+               ret = -EINVAL;
+               heaps = NULL;
+       } else if (frag_end > vt_end || vt_end >= vt_start) {
                ret = -EINVAL;
        } else {
                /* We do the allocation without holding the scheduler lock to avoid