Skip to content
Unverified Commit 0220e4fe authored by Nirmoy Das's avatar Nirmoy Das Committed by Maxime Ripard
Browse files

drm/i915: Fix a memory leak with reused mmap_offset



drm_vma_node_allow() and drm_vma_node_revoke() should be called in
balanced pairs. We call drm_vma_node_allow() once per-file everytime a
user calls mmap_offset, but only call drm_vma_node_revoke once per-file
on each mmap_offset. As the mmap_offset is reused by the client, the
per-file vm_count may remain non-zero and the rbtree leaked.

Call drm_vma_node_allow_once() instead to prevent that memory leak.

Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Andi Shyti <andi.shyti@linux.intel.com>

Signed-off-by: default avatarNirmoy Das <nirmoy.das@intel.com>
Fixes: 78655598

 ("drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list")
Reported-by: default avatarChuansheng Liu <chuansheng.liu@intel.com>
Reported-by: default avatarMirsad Todorovac <mirsad.todorovac@alu.unizg.hr>
Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: default avatarAndi Shyti <andi.shyti@linux.intel.com>
Link: https://lore.kernel.org/r/20230117175236.22317-2-nirmoy.das@intel.com
Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
parent 899d3a3c
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment