diff mbox series

drm/imagination: only init job done fences once

Message ID 20250203-init-done-fences-once-v1-1-a2d62406564b@imgtec.com (mailing list archive)
State New, archived
Headers show
Series drm/imagination: only init job done fences once | expand

Commit Message

Brendan King via B4 Relay Feb. 3, 2025, 3:31 p.m. UTC
From: Brendan King <Brendan.King@imgtec.com>

Ensure job done fences are only initialised once.

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

Signed-off-by: Brendan King <brendan.king@imgtec.com>
---
 drivers/gpu/drm/imagination/pvr_queue.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)


---
base-commit: 3ab334814dc7dff39075e055e12847d51878916e
change-id: 20250131-init-done-fences-once-c55c5d0f4d8c

Best regards,

Comments

Matt Coster Feb. 19, 2025, 12:47 p.m. UTC | #1
On 03/02/2025 15:31, Brendan King via B4 Relay wrote:
> From: Brendan King <Brendan.King@imgtec.com>
> 
> Ensure job done fences are only initialised once.
> 
> This fixes a memory manager not clean warning from drm_mm_takedown
> on module unload.
> 
> Signed-off-by: Brendan King <brendan.king@imgtec.com>

Hi Brendan,

Reviewed-by: Matt Coster <matt.coster@imgtec.com>

Would you mind sending a V2 with "Cc: stable@vger.kernel.org" so this
fix will get picked up for stable backporting?

Cheers,
Matt

> ---
>  drivers/gpu/drm/imagination/pvr_queue.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/imagination/pvr_queue.c b/drivers/gpu/drm/imagination/pvr_queue.c
> index c4f08432882b12f5cdfeb7fc991fd941f0946676..9a67e646f1eae709859f664c796e1940f0b45300 100644
> --- a/drivers/gpu/drm/imagination/pvr_queue.c
> +++ b/drivers/gpu/drm/imagination/pvr_queue.c
> @@ -304,8 +304,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);
>  }
>  
>  /**
> 
> ---
> base-commit: 3ab334814dc7dff39075e055e12847d51878916e
> change-id: 20250131-init-done-fences-once-c55c5d0f4d8c
> 
> Best regards,
diff mbox series

Patch

diff --git a/drivers/gpu/drm/imagination/pvr_queue.c b/drivers/gpu/drm/imagination/pvr_queue.c
index c4f08432882b12f5cdfeb7fc991fd941f0946676..9a67e646f1eae709859f664c796e1940f0b45300 100644
--- a/drivers/gpu/drm/imagination/pvr_queue.c
+++ b/drivers/gpu/drm/imagination/pvr_queue.c
@@ -304,8 +304,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);
 }
 
 /**