Some i915 selftests still use i915_vma_lock() as inner lock, and
intel_context_create_request() intel_timeline->mutex as outer lock.
Fortunately for selftests this is not an issue, they should be fixed
but we can move ahead and cleanify lockdep now.

Signed-off-by: Maarten Lankhorst <maarten.lankho...@linux.intel.com>
---
 drivers/gpu/drm/i915/gt/intel_context.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/gpu/drm/i915/gt/intel_context.c 
b/drivers/gpu/drm/i915/gt/intel_context.c
index 64948386630f..fe9fff5a63b1 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.c
+++ b/drivers/gpu/drm/i915/gt/intel_context.c
@@ -459,6 +459,18 @@ struct i915_request *intel_context_create_request(struct 
intel_context *ce)
        rq = i915_request_create(ce);
        intel_context_unpin(ce);
 
+       if (IS_ERR(rq))
+               return rq;
+
+       /*
+        * timeline->mutex should be the inner lock, but is used as outer lock.
+        * Hack around this to shut up lockdep in selftests..
+        */
+       lockdep_unpin_lock(&ce->timeline->mutex, rq->cookie);
+       mutex_release(&ce->timeline->mutex.dep_map, _RET_IP_);
+       mutex_acquire(&ce->timeline->mutex.dep_map, SINGLE_DEPTH_NESTING, 0, 
_RET_IP_);
+       rq->cookie = lockdep_pin_lock(&ce->timeline->mutex);
+
        return rq;
 }
 
-- 
2.26.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to