drm/i915: Drop code to handle set-vm races from execbuf
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: ccbc1b9794
("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
This commit is contained in:
parent
8cf97637ff
commit
e1068a9e80
|
@ -759,11 +759,7 @@ static int __eb_add_lut(struct i915_execbuffer *eb,
|
||||||
/* Check that the context hasn't been closed in the meantime */
|
/* Check that the context hasn't been closed in the meantime */
|
||||||
err = -EINTR;
|
err = -EINTR;
|
||||||
if (!mutex_lock_interruptible(&ctx->lut_mutex)) {
|
if (!mutex_lock_interruptible(&ctx->lut_mutex)) {
|
||||||
struct i915_address_space *vm = rcu_access_pointer(ctx->vm);
|
if (likely(!i915_gem_context_is_closed(ctx)))
|
||||||
|
|
||||||
if (unlikely(vm && vma->vm != vm))
|
|
||||||
err = -EAGAIN; /* user racing with ctx set-vm */
|
|
||||||
else if (likely(!i915_gem_context_is_closed(ctx)))
|
|
||||||
err = radix_tree_insert(&ctx->handles_vma, handle, vma);
|
err = radix_tree_insert(&ctx->handles_vma, handle, vma);
|
||||||
else
|
else
|
||||||
err = -ENOENT;
|
err = -ENOENT;
|
||||||
|
|
Loading…
Reference in New Issue