drm/i915: Fix wrong return value
authorTianjia Zhang <tianjia.zhang@linux.alibaba.com>
Sun, 2 Aug 2020 11:56:55 +0000 (12:56 +0100)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Mon, 17 Aug 2020 20:16:40 +0000 (16:16 -0400)
In function i915_active_acquire_preallocate_barrier(), not all
paths have the return value set correctly, and in case of memory
allocation failure, a negative error code should be returned.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20200802115655.25568-1-chris@chris-wilson.co.uk
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/i915/i915_active.c
drivers/gpu/drm/i915/selftests/i915_request.c

index d960d0be5bd2fb62cae1261f35b51c8174cc76ef..1e12532074258dd22ff62d37e409648eee3ab78b 100644 (file)
@@ -758,7 +758,6 @@ int i915_active_acquire_preallocate_barrier(struct i915_active *ref,
        intel_engine_mask_t tmp, mask = engine->mask;
        struct llist_node *first = NULL, *last = NULL;
        struct intel_gt *gt = engine->gt;
-       int err;
 
        GEM_BUG_ON(i915_active_is_idle(ref));
 
@@ -781,10 +780,8 @@ int i915_active_acquire_preallocate_barrier(struct i915_active *ref,
                node = reuse_idle_barrier(ref, idx);
                if (!node) {
                        node = kmem_cache_alloc(global.slab_cache, GFP_KERNEL);
-                       if (!node) {
-                               err = ENOMEM;
+                       if (!node)
                                goto unwind;
-                       }
 
                        RCU_INIT_POINTER(node->base.fence, NULL);
                        node->base.cb.func = node_retire;
@@ -832,7 +829,7 @@ unwind:
 
                kmem_cache_free(global.slab_cache, node);
        }
-       return err;
+       return -ENOMEM;
 }
 
 void i915_active_acquire_barrier(struct i915_active *ref)
index 57dd6f5122eedc4f01c59cfdd1838ebebcf4834d..c1dcd4b91bda071850c7c8bd51b6c4068d07848a 100644 (file)
@@ -331,7 +331,7 @@ static int __igt_breadcrumbs_smoketest(void *arg)
                if (!wait) {
                        i915_sw_fence_commit(submit);
                        heap_fence_put(submit);
-                       err = ENOMEM;
+                       err = -ENOMEM;
                        break;
                }