[PATCH] drm/i915: Fix a memory leak in intel_gvt_init_gtt()

zhiyuan_zhu at htc.com zhiyuan_zhu at htc.com
Tue Jul 4 07:33:07 UTC 2017


From: Zhou, Wenjia <zhiyuan_zhu at htc.com>

It will causes memory leak, if the function setup_spt_oos() fail,
in the function intel_gvt_init_gtt(),
which allocated by get_zeroed_page() and mapped by dma_map_page().

Unmap and free the page,  after STP oos initialize fail,
it will fix this issue.

Signed-off-by: Zhou, Wenjia <zhiyuan_zhu at htc.com>
---
drivers/gpu/drm/i915/gvt/gtt.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/i915/gvt/gtt.c  b/drivers/gpu/drm/i915/gvt/gtt.c
index c6f0077..f2b352b 100644
--- a/drivers/gpu/drm/i915/gvt/gtt.c
+++ b/drivers/gpu/drm/i915/gvt/gtt.c
@@ -2254,6 +2254,8 @@ int intel_gvt_init_gtt(struct intel_gvt *gvt)
		ret = setup_spt_oos(gvt);
		if (ret) {
			gvt_err("fail to initialize SPT oos\n");
+			dma_unmap_page(dev, daddr, 4096, PCI_DMA_BIDIRECTIONAL);
+			__free_page(gvt->gtt.scratch_ggtt_page);
			return ret;
		}
	}
---


More information about the intel-gvt-dev mailing list