Since

commit ccbc1b97948ab671335e950271e39766729736c3
Author: Jason Ekstrand <[email protected]>
Date:   Thu Jul 8 10:48:30 2021 -0500

    drm/i915/gem: Don't allow changing the VM on running contexts (v4)

the gem_ctx->vm can't change anymore. Plus we always set the
intel_context->vm, so might as well use the helper we have for that.

This makes it very clear that we always overwrite intel_context->vm
for userspace contexts, since the default is gt->vm, which is
explicitly reserved for kernel context use. It would be good to split
things up a bit further and avoid any possibility for an accident
where we run kernel stuff in userspace vm or the other way round.

Signed-off-by: Daniel Vetter <[email protected]>
Cc: Jon Bloomfield <[email protected]>
Cc: Chris Wilson <[email protected]>
Cc: Maarten Lankhorst <[email protected]>
Cc: Joonas Lahtinen <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: "Thomas Hellström" <[email protected]>
Cc: Matthew Auld <[email protected]>
Cc: Lionel Landwerlin <[email protected]>
Cc: Dave Airlie <[email protected]>
Cc: Jason Ekstrand <[email protected]>
---
 drivers/gpu/drm/i915/gem/i915_gem_context.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c 
b/drivers/gpu/drm/i915/gem/i915_gem_context.c
index a80b06c98dba..fd24a1236682 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c
@@ -784,16 +784,8 @@ static int intel_context_set_gem(struct intel_context *ce,
 
        ce->ring_size = SZ_16K;
 
-       if (rcu_access_pointer(ctx->vm)) {
-               struct i915_address_space *vm;
-
-               rcu_read_lock();
-               vm = context_get_vm_rcu(ctx); /* hmm */
-               rcu_read_unlock();
-
-               i915_vm_put(ce->vm);
-               ce->vm = vm;
-       }
+       i915_vm_put(ce->vm);
+       ce->vm = i915_gem_context_get_eb_vm(ctx);
 
        if (ctx->sched.priority >= I915_PRIORITY_NORMAL &&
            intel_engine_has_timeslices(ce->engine) &&
-- 
2.32.0

Reply via email to