]> www.infradead.org Git - users/hch/misc.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)
committerMatt Coster <matt.coster@imgtec.com>
Mon, 3 Mar 2025 12:10:13 +0000 (12:10 +0000)
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>
drivers/gpu/drm/imagination/pvr_queue.c

index f3f1c5212df7432161919ddc510cececacbbe143..43411be930a214f122ee674668cf4af8f529c01a 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);
 }
 
 /**