]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/xe: fix the ERR_PTR() returned on failure to allocate tiny pt
authorMirsad Todorovac <mtodorovac69@gmail.com>
Thu, 21 Nov 2024 21:20:58 +0000 (22:20 +0100)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Mon, 9 Dec 2024 16:47:17 +0000 (11:47 -0500)
Running coccinelle spatch gave the following warning:

./drivers/gpu/drm/xe/tests/xe_migrate.c:226:5-11: inconsistent IS_ERR
and PTR_ERR on line 228.

The code reports PTR_ERR(pt) when IS_ERR(tiny) is checked:

→ 211  pt = xe_bo_create_pin_map(xe, tile, m->q->vm, XE_PAGE_SIZE,
  212                            ttm_bo_type_kernel,
  213                            XE_BO_FLAG_VRAM_IF_DGFX(tile) |
  214                            XE_BO_FLAG_PINNED);
  215  if (IS_ERR(pt)) {
  216          KUNIT_FAIL(test, "Failed to allocate fake pt: %li\n",
  217                     PTR_ERR(pt));
  218          goto free_big;
  219  }
  220
  221  tiny = xe_bo_create_pin_map(xe, tile, m->q->vm,
→ 222                              2 * SZ_4K,
  223                              ttm_bo_type_kernel,
  224                              XE_BO_FLAG_VRAM_IF_DGFX(tile) |
  225                              XE_BO_FLAG_PINNED);
→ 226  if (IS_ERR(tiny)) {
→ 227          KUNIT_FAIL(test, "Failed to allocate fake pt: %li\n",
→ 228                     PTR_ERR(pt));
  229          goto free_pt;
  230  }

Now, the IS_ERR(tiny) and the corresponding PTR_ERR(pt) do not match.

Returning PTR_ERR(tiny), as the last failed function call, seems logical.

Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
Signed-off-by: Mirsad Todorovac <mtodorovac69@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241121212057.1526634-2-mtodorovac69@gmail.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/tests/xe_migrate.c

index 4cef3b20bd17ec4ecc72327ca72ec226ad8fdeab..d5fe0ea889ad84343b3e97ac808becb388ba2cb6 100644 (file)
@@ -225,8 +225,8 @@ static void xe_migrate_sanity_test(struct xe_migrate *m, struct kunit *test)
                                    XE_BO_FLAG_VRAM_IF_DGFX(tile) |
                                    XE_BO_FLAG_PINNED);
        if (IS_ERR(tiny)) {
-               KUNIT_FAIL(test, "Failed to allocate fake pt: %li\n",
-                          PTR_ERR(pt));
+               KUNIT_FAIL(test, "Failed to allocate tiny fake pt: %li\n",
+                          PTR_ERR(tiny));
                goto free_pt;
        }