drm/i915: Remove the vma from the drm_mm if binding fails
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 27 Feb 2017 12:26:54 +0000 (12:26 +0000)
committerJani Nikula <jani.nikula@intel.com>
Thu, 9 Mar 2017 08:43:55 +0000 (10:43 +0200)
commit8c9923707f30ff56d9fd242053594b18f38d8036
treee5ae68a285fa0107f4d9cc35da1b85257d819380
parentb717a0392530ae8da0da041abe5c3a6098b55660
drm/i915: Remove the vma from the drm_mm if binding fails

As we track whether a vma has been inserted into the drm_mm using the
vma->flags, if we fail to bind the vma into the GTT we do not update
those bits and will attempt to reinsert the vma into the drm_mm on
future passes. To prevent that, we want to unwind i915_vma_insert() if
we fail in our attempt to bind.

Fixes: 59bfa1248e22 ("drm/i915: Start passing around i915_vma from execbuffer")
Testcase: igt/drv_selftest/live_gtt
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Matthew Auld <matthew.william.auld@gmail.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: <stable@vger.kernel.org> # v4.9+
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170227122654.27651-3-chris@chris-wilson.co.uk
(cherry picked from commit 31c7effa39f21f0fea1b3250ae9ff32b9c7e1ae5)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/i915_vma.c