[PATCH 15/18] drm/i915: Kill last user of intel_context_create_request outside of selftests

Maarten Lankhorst maarten.lankhorst at linux.intel.com
Tue Jan 28 17:07:13 UTC 2020


Instead of using intel_context_create_request(), use intel_context_pin()
and i915_create_request directly.

Now intel_context_create_request is a helper function for igt, as the
calls in gem/i915_gem_(object/client)_blt.c are only used by selftests.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
---
 drivers/gpu/drm/i915/gt/intel_workarounds.c | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index 5a7db279f702..cb14f5de8882 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -1605,19 +1605,25 @@ static int engine_wa_list_verify(struct intel_context *ce,
 		return PTR_ERR(vma);
 
 	intel_engine_pm_get(ce->engine);
+	err = intel_context_pin(ce);
+	if (err)
+		goto err_pm;
+
 	rq = intel_context_create_request(ce);
-	intel_engine_pm_put(ce->engine);
 	if (IS_ERR(rq)) {
 		err = PTR_ERR(rq);
-		goto err_vma;
+		goto err_unpin;
 	}
 
 	err = wa_list_srm(rq, wal, vma);
-	if (err)
-		goto err_vma;
-
 	i915_request_get(rq);
+	if (err)
+		i915_request_skip(rq, err);
 	i915_request_add(rq);
+
+	if (err)
+		goto err_rq;
+
 	if (i915_request_wait(rq, 0, HZ / 5) < 0) {
 		err = -ETIME;
 		goto err_rq;
@@ -1642,7 +1648,10 @@ static int engine_wa_list_verify(struct intel_context *ce,
 
 err_rq:
 	i915_request_put(rq);
-err_vma:
+err_unpin:
+	intel_context_unpin(ce);
+err_pm:
+	intel_engine_pm_put(ce->engine);
 	i915_vma_unpin(vma);
 	i915_vma_put(vma);
 	return err;
-- 
2.24.1



More information about the Intel-gfx-trybot mailing list