diff options
author | Zhou, Wenjia <zhiyuan_zhu@htc.com> | 2017-07-04 03:47:00 -0400 |
---|---|---|
committer | Zhenyu Wang <zhenyuw@linux.intel.com> | 2017-07-11 01:46:58 -0400 |
commit | 0de98709896d9c02ce3121ec3afb524253a5853f (patch) | |
tree | 74f0b71e56d1d016b6fffd9fec71d2932246daaa | |
parent | 7581d5ca2bb269cfc2ce2d0cb489aac513167f6b (diff) |
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>
-rw-r--r-- | drivers/gpu/drm/i915/gvt/gtt.c | 2 |
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) | |||
2259 | ret = setup_spt_oos(gvt); | 2259 | ret = setup_spt_oos(gvt); |
2260 | if (ret) { | 2260 | if (ret) { |
2261 | gvt_err("fail to initialize SPT oos\n"); | 2261 | gvt_err("fail to initialize SPT oos\n"); |
2262 | dma_unmap_page(dev, daddr, 4096, PCI_DMA_BIDIRECTIONAL); | ||
2263 | __free_page(gvt->gtt.scratch_ggtt_page); | ||
2262 | return ret; | 2264 | return ret; |
2263 | } | 2265 | } |
2264 | } | 2266 | } |