drm/i915: Fix potential bit_17 double-free
authorRob Clark <robdclark@chromium.org>
Fri, 27 Jan 2023 20:05:31 +0000 (12:05 -0800)
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>
Mon, 30 Jan 2023 10:10:16 +0000 (10:10 +0000)
commit10e0cbaaf1104f449d695c80bcacf930dcd3c42e
tree4328cf0145b69794c50919e3ea885f02a2f0adf0
parent583ebae783b8241a30581c084ad6226051b594c5
drm/i915: Fix potential bit_17 double-free

A userspace with multiple threads racing I915_GEM_SET_TILING to set the
tiling to I915_TILING_NONE could trigger a double free of the bit_17
bitmask.  (Or conversely leak memory on the transition to tiled.)  Move
allocation/free'ing of the bitmask within the section protected by the
obj lock.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Fixes: 2850748ef876 ("drm/i915: Pull i915_vma_pin under the vm->mutex")
Cc: <stable@vger.kernel.org> # v5.5+
[tursulin: Correct fixes tag and added cc stable.]
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230127200550.3531984-1-robdclark@gmail.com
drivers/gpu/drm/i915/gem/i915_gem_tiling.c