drm/i915: Reorder phys backing storage release
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 7 Dec 2016 13:34:11 +0000 (13:34 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 12 Dec 2016 12:24:36 +0000 (12:24 +0000)
commitdbb4351bab0a8440f6b02895c142bce6c30b7097
tree4c5181e62cc3ac0f182634709577f248b27f74bf
parent7e3eb599236db605413b4e047692dab9b600d6c6
drm/i915: Reorder phys backing storage release

In commit a4f5ea64f0a8 ("drm/i915: Refactor object page API"), I
reordered the object->pages teardown to be more friendly wrt to a
separate obj->mm.lock. However, I overlooked the phys object and left it
with a dangling use-after-free of its phys_handle. Move the allocation
of the phys handle to get_pages and it release to put_pages to prevent
the invalid access and to improve symmetry.

v2: Add commentary about always aligning to page size.

Testcase: igt/drv_selftest/objects
Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Fixes: a4f5ea64f0a8 ("drm/i915: Refactor object page API")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20161207133411.8028-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_gem.c