]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/imagination: only init job done fences once
authorBrendan King <Brendan.King@imgtec.com>
Wed, 26 Feb 2025 15:43:54 +0000 (15:43 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Mar 2025 12:01:53 +0000 (13:01 +0100)
commit 68c3de7f707e8a70e0a6d8087cf0fe4a3d5dbfb0 upstream.

Ensure job done fences are only initialised once.

This fixes a memory manager not clean warning from drm_mm_takedown
on module unload.

Cc: stable@vger.kernel.org
Fixes: eaf01ee5ba28 ("drm/imagination: Implement job submission and scheduling")
Signed-off-by: Brendan King <brendan.king@imgtec.com>
Reviewed-by: Matt Coster <matt.coster@imgtec.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250226-init-done-fences-once-v2-1-c1b2f556b329@imgtec.com
Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/imagination/pvr_queue.c

index f8dffbf47498ce94259dc00726bac5e1e8506b19..87780cc7c0c3225ab182dbbd5e42ef8be7d8f2df 100644 (file)
@@ -313,8 +313,9 @@ pvr_queue_cccb_fence_init(struct dma_fence *fence, struct pvr_queue *queue)
 static void
 pvr_queue_job_fence_init(struct dma_fence *fence, struct pvr_queue *queue)
 {
-       pvr_queue_fence_init(fence, queue, &pvr_queue_job_fence_ops,
-                            &queue->job_fence_ctx);
+       if (!fence->ops)
+               pvr_queue_fence_init(fence, queue, &pvr_queue_job_fence_ops,
+                                    &queue->job_fence_ctx);
 }
 
 /**