[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