Signed-off-by: Jason Ekstrand <ja...@jlekstrand.net>
---
 .../drm/i915/gem/selftests/i915_gem_context.c |  4 ++--
 .../gpu/drm/i915/gem/selftests/mock_context.c |  8 +++++++-
 .../gpu/drm/i915/gem/selftests/mock_context.h |  4 +++-
 drivers/gpu/drm/i915/gt/selftest_execlists.c  | 20 +++++++++----------
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c  |  2 +-
 5 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c 
b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
index 16ff64ab34a1b..76029d7143f6c 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
@@ -680,7 +680,7 @@ static int igt_ctx_exec(void *arg)
                        struct i915_gem_context *ctx;
                        struct intel_context *ce;
 
-                       ctx = kernel_context(i915);
+                       ctx = kernel_context(i915, NULL);
                        if (IS_ERR(ctx)) {
                                err = PTR_ERR(ctx);
                                goto out_file;
@@ -813,7 +813,7 @@ static int igt_shared_ctx_exec(void *arg)
                        struct i915_gem_context *ctx;
                        struct intel_context *ce;
 
-                       ctx = kernel_context(i915);
+                       ctx = kernel_context(i915, NULL);
                        if (IS_ERR(ctx)) {
                                err = PTR_ERR(ctx);
                                goto out_test;
diff --git a/drivers/gpu/drm/i915/gem/selftests/mock_context.c 
b/drivers/gpu/drm/i915/gem/selftests/mock_context.c
index 32cf2103828f9..e4aced7eabb72 100644
--- a/drivers/gpu/drm/i915/gem/selftests/mock_context.c
+++ b/drivers/gpu/drm/i915/gem/selftests/mock_context.c
@@ -148,7 +148,8 @@ live_context_for_engine(struct intel_engine_cs *engine, 
struct file *file)
 }
 
 struct i915_gem_context *
-kernel_context(struct drm_i915_private *i915)
+kernel_context(struct drm_i915_private *i915,
+              struct i915_address_space *vm)
 {
        struct i915_gem_context *ctx;
        struct i915_gem_proto_context *pc;
@@ -157,6 +158,11 @@ kernel_context(struct drm_i915_private *i915)
        if (IS_ERR(pc))
                return ERR_CAST(pc);
 
+       if (vm) {
+               i915_vm_put(pc->vm);
+               pc->vm = i915_vm_get(vm);
+       }
+
        ctx = i915_gem_create_context(i915, pc);
        proto_context_close(pc);
        if (IS_ERR(ctx))
diff --git a/drivers/gpu/drm/i915/gem/selftests/mock_context.h 
b/drivers/gpu/drm/i915/gem/selftests/mock_context.h
index 2a6121d33352d..7a02fd9b5866a 100644
--- a/drivers/gpu/drm/i915/gem/selftests/mock_context.h
+++ b/drivers/gpu/drm/i915/gem/selftests/mock_context.h
@@ -10,6 +10,7 @@
 struct file;
 struct drm_i915_private;
 struct intel_engine_cs;
+struct i915_address_space;
 
 void mock_init_contexts(struct drm_i915_private *i915);
 
@@ -25,7 +26,8 @@ live_context(struct drm_i915_private *i915, struct file 
*file);
 struct i915_gem_context *
 live_context_for_engine(struct intel_engine_cs *engine, struct file *file);
 
-struct i915_gem_context *kernel_context(struct drm_i915_private *i915);
+struct i915_gem_context *kernel_context(struct drm_i915_private *i915,
+                                       struct i915_address_space *vm);
 void kernel_context_close(struct i915_gem_context *ctx);
 
 #endif /* !__MOCK_CONTEXT_H */
diff --git a/drivers/gpu/drm/i915/gt/selftest_execlists.c 
b/drivers/gpu/drm/i915/gt/selftest_execlists.c
index f03446d587160..0bb35c29ea193 100644
--- a/drivers/gpu/drm/i915/gt/selftest_execlists.c
+++ b/drivers/gpu/drm/i915/gt/selftest_execlists.c
@@ -1522,12 +1522,12 @@ static int live_busywait_preempt(void *arg)
         * preempt the busywaits used to synchronise between rings.
         */
 
-       ctx_hi = kernel_context(gt->i915);
+       ctx_hi = kernel_context(gt->i915, NULL);
        if (!ctx_hi)
                return -ENOMEM;
        ctx_hi->sched.priority = I915_CONTEXT_MAX_USER_PRIORITY;
 
-       ctx_lo = kernel_context(gt->i915);
+       ctx_lo = kernel_context(gt->i915, NULL);
        if (!ctx_lo)
                goto err_ctx_hi;
        ctx_lo->sched.priority = I915_CONTEXT_MIN_USER_PRIORITY;
@@ -1724,12 +1724,12 @@ static int live_preempt(void *arg)
        if (igt_spinner_init(&spin_lo, gt))
                goto err_spin_hi;
 
-       ctx_hi = kernel_context(gt->i915);
+       ctx_hi = kernel_context(gt->i915, NULL);
        if (!ctx_hi)
                goto err_spin_lo;
        ctx_hi->sched.priority = I915_CONTEXT_MAX_USER_PRIORITY;
 
-       ctx_lo = kernel_context(gt->i915);
+       ctx_lo = kernel_context(gt->i915, NULL);
        if (!ctx_lo)
                goto err_ctx_hi;
        ctx_lo->sched.priority = I915_CONTEXT_MIN_USER_PRIORITY;
@@ -1816,11 +1816,11 @@ static int live_late_preempt(void *arg)
        if (igt_spinner_init(&spin_lo, gt))
                goto err_spin_hi;
 
-       ctx_hi = kernel_context(gt->i915);
+       ctx_hi = kernel_context(gt->i915, NULL);
        if (!ctx_hi)
                goto err_spin_lo;
 
-       ctx_lo = kernel_context(gt->i915);
+       ctx_lo = kernel_context(gt->i915, NULL);
        if (!ctx_lo)
                goto err_ctx_hi;
 
@@ -1910,7 +1910,7 @@ struct preempt_client {
 
 static int preempt_client_init(struct intel_gt *gt, struct preempt_client *c)
 {
-       c->ctx = kernel_context(gt->i915);
+       c->ctx = kernel_context(gt->i915, NULL);
        if (!c->ctx)
                return -ENOMEM;
 
@@ -3367,12 +3367,12 @@ static int live_preempt_timeout(void *arg)
        if (igt_spinner_init(&spin_lo, gt))
                return -ENOMEM;
 
-       ctx_hi = kernel_context(gt->i915);
+       ctx_hi = kernel_context(gt->i915, NULL);
        if (!ctx_hi)
                goto err_spin_lo;
        ctx_hi->sched.priority = I915_CONTEXT_MAX_USER_PRIORITY;
 
-       ctx_lo = kernel_context(gt->i915);
+       ctx_lo = kernel_context(gt->i915, NULL);
        if (!ctx_lo)
                goto err_ctx_hi;
        ctx_lo->sched.priority = I915_CONTEXT_MIN_USER_PRIORITY;
@@ -3659,7 +3659,7 @@ static int live_preempt_smoke(void *arg)
        }
 
        for (n = 0; n < smoke.ncontext; n++) {
-               smoke.contexts[n] = kernel_context(smoke.gt->i915);
+               smoke.contexts[n] = kernel_context(smoke.gt->i915, NULL);
                if (!smoke.contexts[n])
                        goto err_ctx;
        }
diff --git a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c 
b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
index 746985971c3a6..3676eaf6b2aee 100644
--- a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
+++ b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
@@ -42,7 +42,7 @@ static int hang_init(struct hang *h, struct intel_gt *gt)
        memset(h, 0, sizeof(*h));
        h->gt = gt;
 
-       h->ctx = kernel_context(gt->i915);
+       h->ctx = kernel_context(gt->i915, NULL);
        if (IS_ERR(h->ctx))
                return PTR_ERR(h->ctx);
 
-- 
2.31.1

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

Reply via email to