| From 79980e3b38f653e3da144bbb035565fbdae5776c Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 14 Apr 2021 09:01:38 +0300 |
| Subject: drm/i915/gvt: Fix error code in intel_gvt_init_device() |
| |
| From: Dan Carpenter <dan.carpenter@oracle.com> |
| |
| [ 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 | 8 ++++---- |
| 1 file changed, 4 insertions(+), 4 deletions(-) |
| |
| diff --git a/drivers/gpu/drm/i915/gvt/gvt.c b/drivers/gpu/drm/i915/gvt/gvt.c |
| index d1d8ee4a5f16..57578bf28d77 100644 |
| --- a/drivers/gpu/drm/i915/gvt/gvt.c |
| +++ b/drivers/gpu/drm/i915/gvt/gvt.c |
| @@ -126,7 +126,7 @@ static bool intel_get_gvt_attrs(struct attribute_group ***intel_vgpu_type_groups |
| 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; |
| @@ -144,7 +144,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++) { |
| @@ -152,7 +152,7 @@ unwind: |
| kfree(group); |
| } |
| |
| - return false; |
| + return -ENOMEM; |
| } |
| |
| static void intel_gvt_cleanup_vgpu_type_groups(struct intel_gvt *gvt) |
| @@ -360,7 +360,7 @@ int intel_gvt_init_device(struct drm_i915_private *i915) |
| 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; |
| } |
| -- |
| 2.30.2 |
| |