]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915: Drop code to handle set-vm races from execbuf
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 2 Sep 2021 14:20:50 +0000 (16:20 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 6 Sep 2021 08:45:56 +0000 (10:45 +0200)
Changing the vm from a finalized gem ctx is no longer possible, which
means we don't have to check for that anymore.

I was pondering whether to keep the check as a WARN_ON, but things go
boom real bad real fast if the vm of a vma is wrong. Plus we'd need to
also get the ggtt vm for !full-ppgtt platforms. Ditching it all seemed
like a better idea.

Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
References: ccbc1b97948a ("drm/i915/gem: Don't allow changing the VM on running contexts (v4)")
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Jon Bloomfield <jon.bloomfield@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Jason Ekstrand <jason@jlekstrand.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20210902142057.929669-4-daniel.vetter@ffwll.ch
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c

index 45bc4e4ff048693caa33ed1155a49c6809bc33d0..4816359c4c21bea7390668b89c4a68541a31bd14 100644 (file)
@@ -759,11 +759,7 @@ static int __eb_add_lut(struct i915_execbuffer *eb,
        /* Check that the context hasn't been closed in the meantime */
        err = -EINTR;
        if (!mutex_lock_interruptible(&ctx->lut_mutex)) {
-               struct i915_address_space *vm = rcu_access_pointer(ctx->vm);
-
-               if (unlikely(vm && vma->vm != vm))
-                       err = -EAGAIN; /* user racing with ctx set-vm */
-               else if (likely(!i915_gem_context_is_closed(ctx)))
+               if (likely(!i915_gem_context_is_closed(ctx)))
                        err = radix_tree_insert(&ctx->handles_vma, handle, vma);
                else
                        err = -ENOENT;