]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/xe/guc_submit: fix xa_store() error checking
authorMatthew Auld <matthew.auld@intel.com>
Tue, 1 Oct 2024 08:43:49 +0000 (09:43 +0100)
committerLucas De Marchi <lucas.demarchi@intel.com>
Tue, 8 Oct 2024 23:06:16 +0000 (18:06 -0500)
Looks like we are meant to use xa_err() to extract the error encoded in
the ptr.

Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Badal Nilawar <badal.nilawar@intel.com>
Cc: <stable@vger.kernel.org> # v6.8+
Reviewed-by: Badal Nilawar <badal.nilawar@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241001084346.98516-7-matthew.auld@intel.com
(cherry picked from commit f040327238b1a8311598c40ac94464e77fff368c)
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
drivers/gpu/drm/xe/xe_guc_submit.c

index 80062e1d3f663d6b085c8eab38b93106063ceeb4..8a5c21a879779b43fc84ee547095f0bf7f40210e 100644 (file)
@@ -393,7 +393,6 @@ static void __release_guc_id(struct xe_guc *guc, struct xe_exec_queue *q, u32 xa
 static int alloc_guc_id(struct xe_guc *guc, struct xe_exec_queue *q)
 {
        int ret;
-       void *ptr;
        int i;
 
        /*
@@ -413,12 +412,10 @@ static int alloc_guc_id(struct xe_guc *guc, struct xe_exec_queue *q)
        q->guc->id = ret;
 
        for (i = 0; i < q->width; ++i) {
-               ptr = xa_store(&guc->submission_state.exec_queue_lookup,
-                              q->guc->id + i, q, GFP_NOWAIT);
-               if (IS_ERR(ptr)) {
-                       ret = PTR_ERR(ptr);
+               ret = xa_err(xa_store(&guc->submission_state.exec_queue_lookup,
+                                     q->guc->id + i, q, GFP_NOWAIT));
+               if (ret)
                        goto err_release;
-               }
        }
 
        return 0;