]> git.itanic.dy.fi Git - linux-stable/commitdiff
drm/xe: Fix crash in trace_dma_fence_init()
authorJosé Roberto de Souza <jose.souza@intel.com>
Wed, 24 Jan 2024 17:18:30 +0000 (09:18 -0800)
committerThomas Hellström <thomas.hellstrom@linux.intel.com>
Thu, 1 Feb 2024 10:25:45 +0000 (11:25 +0100)
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@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240124171830.95774-1-jose.souza@intel.com
(cherry picked from commit c6878e47431c72168da08dfbc1496c09b2d3c246)
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
drivers/gpu/drm/xe/xe_hw_fence.c

index a6094c81f2ad0fa8a3f1cf1001ceb897a044d3cb..a5de3e7b0bd6ab134557fdfb52a406d4bf199016 100644 (file)
@@ -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;