[PATCH] drm/xe: Fix crash in trace_dma_fence_init()

Matthew Brost matthew.brost at intel.com
Wed Jan 24 21:17:21 UTC 2024


On Wed, Jan 24, 2024 at 09:18:30AM -0800, José Roberto de Souza wrote:
> trace_dma_fence_init() uses dma_fence_ops functions
> like get_driver_name() and get_timeline_name() to generate trace
> information but the Xe KMD implementation of those functions makes
> use of xe_hw_fence_ctx that was being set after dma_fence_init().
> 
> So here just inverting the order to fix the crash.
> 
> Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
> Signed-off-by: José Roberto de Souza <jose.souza at intel.com>

Reviewed-by: Matthew Brost <matthew.brost at intel.com>

> ---
>  drivers/gpu/drm/xe/xe_hw_fence.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_hw_fence.c b/drivers/gpu/drm/xe/xe_hw_fence.c
> index a6094c81f2ad0..a5de3e7b0bd6a 100644
> --- a/drivers/gpu/drm/xe/xe_hw_fence.c
> +++ b/drivers/gpu/drm/xe/xe_hw_fence.c
> @@ -217,13 +217,13 @@ struct xe_hw_fence *xe_hw_fence_create(struct xe_hw_fence_ctx *ctx,
>  	if (!fence)
>  		return ERR_PTR(-ENOMEM);
>  
> -	dma_fence_init(&fence->dma, &xe_hw_fence_ops, &ctx->irq->lock,
> -		       ctx->dma_fence_ctx, ctx->next_seqno++);
> -
>  	fence->ctx = ctx;
>  	fence->seqno_map = seqno_map;
>  	INIT_LIST_HEAD(&fence->irq_link);
>  
> +	dma_fence_init(&fence->dma, &xe_hw_fence_ops, &ctx->irq->lock,
> +		       ctx->dma_fence_ctx, ctx->next_seqno++);
> +
>  	trace_xe_hw_fence_create(fence);
>  
>  	return fence;
> -- 
> 2.43.0
> 


More information about the Intel-xe mailing list