OSDN Git Service

drm/i915/gvt: Fix error code in intel_gvt_init_device()
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 14 Apr 2021 06:01:38 +0000 (09:01 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 22 May 2021 08:59:36 +0000 (10:59 +0200)
[ Upstream commit 329328ec6a87f2c1275f50d979d55513de458409 ]

The intel_gvt_init_vgpu_type_groups() function is only called from
intel_gvt_init_device().  If it fails then the intel_gvt_init_device()
prints the error code and propagates it back again.  That's a bug
because false is zero/success.  The fix is to modify it to return zero
or negative error codes and make everything consistent.

Fixes: c5d71cb31723 ("drm/i915/gvt: Move vGPU type related code into gvt file")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/YHaFQtk/DIVYK1u5@mwanda
Reviewed-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/i915/gvt/gvt.c

index 46c8b72..3e3876d 100644 (file)
@@ -128,7 +128,7 @@ static bool intel_get_gvt_attrs(struct attribute ***type_attrs,
        return true;
 }
 
-static bool intel_gvt_init_vgpu_type_groups(struct intel_gvt *gvt)
+static int intel_gvt_init_vgpu_type_groups(struct intel_gvt *gvt)
 {
        int i, j;
        struct intel_vgpu_type *type;
@@ -146,7 +146,7 @@ static bool intel_gvt_init_vgpu_type_groups(struct intel_gvt *gvt)
                gvt_vgpu_type_groups[i] = group;
        }
 
-       return true;
+       return 0;
 
 unwind:
        for (j = 0; j < i; j++) {
@@ -154,7 +154,7 @@ unwind:
                kfree(group);
        }
 
-       return false;
+       return -ENOMEM;
 }
 
 static void intel_gvt_cleanup_vgpu_type_groups(struct intel_gvt *gvt)
@@ -416,7 +416,7 @@ int intel_gvt_init_device(struct drm_i915_private *dev_priv)
                goto out_clean_thread;
 
        ret = intel_gvt_init_vgpu_type_groups(gvt);
-       if (ret == false) {
+       if (ret) {
                gvt_err("failed to init vgpu type groups: %d\n", ret);
                goto out_clean_types;
        }