[PATCH 2/2] bug-on-ebusy
Chris Wilson
chris at chris-wilson.co.uk
Wed Jun 20 17:26:02 UTC 2018
---
drivers/gpu/drm/i915/i915_gem_execbuffer.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
index 60dc2a865f5f..4c70391ded54 100644
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@ -534,7 +534,8 @@ eb_add_vma(struct i915_execbuffer *eb,
* paranoia do it everywhere.
*/
if (i == batch_idx) {
- if (!(eb->flags[i] & EXEC_OBJECT_PINNED))
+ if (entry->relocation_count &&
+ !(eb->flags[i] & EXEC_OBJECT_PINNED))
eb->flags[i] |= __EXEC_OBJECT_NEEDS_BIAS;
if (eb->reloc_cache.has_fence)
eb->flags[i] |= EXEC_OBJECT_NEEDS_FENCE;
@@ -551,11 +552,13 @@ eb_add_vma(struct i915_execbuffer *eb,
} else {
eb_unreserve_vma(vma, vma->exec_flags);
+ GEM_BUG_ON(i915_vma_is_pinned(vma));
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;
+ GEM_BUG_ON(err == -EBUSY);
}
return err;
}
--
2.18.0.rc2
More information about the Intel-gfx-trybot
mailing list