summaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorZhou, Wenjia2017-07-04 09:47:00 +0200
committerZhenyu Wang2017-07-11 07:46:58 +0200
commit0de98709896d9c02ce3121ec3afb524253a5853f (patch)
tree74f0b71e56d1d016b6fffd9fec71d2932246daaa /drivers/gpu
parentdrm/i915/fbdev: Check for existence of ifbdev->vma before operations (diff)
downloadkernel-qcow2-linux-0de98709896d9c02ce3121ec3afb524253a5853f.tar.gz
kernel-qcow2-linux-0de98709896d9c02ce3121ec3afb524253a5853f.tar.xz
kernel-qcow2-linux-0de98709896d9c02ce3121ec3afb524253a5853f.zip
drm/i915/gvt: Fix a memory leak in intel_gvt_init_gtt()
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@htc.com> Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/gvt/gtt.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/gvt/gtt.c b/drivers/gpu/drm/i915/gvt/gtt.c
index 66374dba3b1a..6166e34d892b 100644
--- a/drivers/gpu/drm/i915/gvt/gtt.c
+++ b/drivers/gpu/drm/i915/gvt/gtt.c
@@ -2259,6 +2259,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;
}
}