|
Takashi Iwai |
07f578 |
From 98828955971363e838149105c268b1fad905f15b Mon Sep 17 00:00:00 2001
|
|
Takashi Iwai |
07f578 |
From: Christoph Hellwig <hch@lst.de>
|
|
Takashi Iwai |
07f578 |
Date: Fri, 23 Sep 2022 11:26:39 +0200
|
|
Takashi Iwai |
07f578 |
Subject: [PATCH] drm/i915/gvt: fix a memory leak in intel_gvt_init_vgpu_types
|
|
Takashi Iwai |
07f578 |
Git-commit: 98828955971363e838149105c268b1fad905f15b
|
|
Takashi Iwai |
07f578 |
Patch-mainline: v6.1-rc1
|
|
Takashi Iwai |
07f578 |
References: git-fixes
|
|
Takashi Iwai |
07f578 |
|
|
Takashi Iwai |
07f578 |
gvt->types needs to be freed on error.
|
|
Takashi Iwai |
07f578 |
|
|
Takashi Iwai |
07f578 |
Fixes: bc90d097ae14 ("drm/i915/gvt: define weight according to vGPU type")
|
|
Takashi Iwai |
07f578 |
Reported-by: Kevin Tian <kevin.tian@intel.com>
|
|
Takashi Iwai |
07f578 |
Signed-off-by: Christoph Hellwig <hch@lst.de>
|
|
Takashi Iwai |
07f578 |
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
|
|
Takashi Iwai |
07f578 |
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
|
|
Takashi Iwai |
07f578 |
Reviewed-by: Zhenyu Wang <zhenyuw@linux.intel.com>
|
|
Takashi Iwai |
07f578 |
Link: https://lore.kernel.org/r/20220923092652.100656-2-hch@lst.de
|
|
Takashi Iwai |
07f578 |
[aw: Correct fixes commit ID as reported by Stephen Rothwell]
|
|
Takashi Iwai |
07f578 |
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
|
|
Takashi Iwai |
07f578 |
Acked-by: Takashi Iwai <tiwai@suse.de>
|
|
Takashi Iwai |
07f578 |
|
|
Takashi Iwai |
07f578 |
---
|
|
Takashi Iwai |
07f578 |
drivers/gpu/drm/i915/gvt/vgpu.c | 6 +++++-
|
|
Takashi Iwai |
07f578 |
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
Takashi Iwai |
07f578 |
|
|
Takashi Iwai |
07f578 |
diff --git a/drivers/gpu/drm/i915/gvt/vgpu.c b/drivers/gpu/drm/i915/gvt/vgpu.c
|
|
Takashi Iwai |
07f578 |
index 5c533fbc2c8d..dbb2a971ba5d 100644
|
|
Takashi Iwai |
07f578 |
--- a/drivers/gpu/drm/i915/gvt/vgpu.c
|
|
Takashi Iwai |
07f578 |
+++ b/drivers/gpu/drm/i915/gvt/vgpu.c
|
|
Takashi Iwai |
07f578 |
@@ -142,7 +142,7 @@ int intel_gvt_init_vgpu_types(struct intel_gvt *gvt)
|
|
Takashi Iwai |
07f578 |
|
|
Takashi Iwai |
07f578 |
if (vgpu_types[i].weight < 1 ||
|
|
Takashi Iwai |
07f578 |
vgpu_types[i].weight > VGPU_MAX_WEIGHT)
|
|
Takashi Iwai |
07f578 |
- return -EINVAL;
|
|
Takashi Iwai |
07f578 |
+ goto out_free_types;
|
|
Takashi Iwai |
07f578 |
|
|
Takashi Iwai |
07f578 |
gvt->types[i].weight = vgpu_types[i].weight;
|
|
Takashi Iwai |
07f578 |
gvt->types[i].resolution = vgpu_types[i].edid;
|
|
Takashi Iwai |
07f578 |
@@ -167,6 +167,10 @@ int intel_gvt_init_vgpu_types(struct intel_gvt *gvt)
|
|
Takashi Iwai |
07f578 |
|
|
Takashi Iwai |
07f578 |
gvt->num_types = i;
|
|
Takashi Iwai |
07f578 |
return 0;
|
|
Takashi Iwai |
07f578 |
+
|
|
Takashi Iwai |
07f578 |
+out_free_types:
|
|
Takashi Iwai |
07f578 |
+ kfree(gvt->types);
|
|
Takashi Iwai |
07f578 |
+ return -EINVAL;
|
|
Takashi Iwai |
07f578 |
}
|
|
Takashi Iwai |
07f578 |
|
|
Takashi Iwai |
07f578 |
void intel_gvt_clean_vgpu_types(struct intel_gvt *gvt)
|
|
Takashi Iwai |
07f578 |
--
|
|
Takashi Iwai |
07f578 |
2.35.3
|
|
Takashi Iwai |
07f578 |
|