| From e659d14ed48096f87a678e7ebbdf286a817b4d0e Mon Sep 17 00:00:00 2001 |
| From: Chris Wilson <chris@chris-wilson.co.uk> |
| Date: Mon, 19 Feb 2018 14:01:44 +0000 |
| Subject: drm/i915: Clear the in-use marker on execbuf failure |
| |
| From: Chris Wilson <chris@chris-wilson.co.uk> |
| |
| commit e659d14ed48096f87a678e7ebbdf286a817b4d0e upstream. |
| |
| If we fail to unbind the vma (due to a signal on an active buffer that |
| needs to be moved for the next execbuf), then we need to clear the |
| persistent tracking state we setup for this execbuf. |
| |
| Fixes: c7c6e46f913b ("drm/i915: Convert execbuf to use struct-of-array packing for critical fields") |
| Testcase: igt/gem_fenced_exec_thrash/no-spare-fences-busy* |
| Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> |
| Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> |
| Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> |
| Cc: <stable@vger.kernel.org> # v4.14+ |
| Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> |
| Link: https://patchwork.freedesktop.org/patch/msgid/20180219140144.24004-1-chris@chris-wilson.co.uk |
| (cherry picked from commit ed2f3532321083cf40e4da4e36234880e0136136) |
| Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c |
| +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c |
| @@ -499,6 +499,8 @@ eb_add_vma(struct i915_execbuffer *eb, u |
| list_add_tail(&vma->exec_link, &eb->unbound); |
| if (drm_mm_node_allocated(&vma->node)) |
| err = i915_vma_unbind(vma); |
| + if (unlikely(err)) |
| + vma->exec_flags = NULL; |
| } |
| return err; |
| } |