drm/i915: Drop vm.ref for duplicate vma on construction
As we allow for parallel threads to create the same vma instance concurrently, and we only filter out the duplicates upon reacquiring the spinlock for the rbtree, we have to free the loser of the constructors' race. When freeing, we should also drop any resource references acquired for the redundant vma. Fixes:2850748ef8
("drm/i915: Pull i915_vma_pin under the vm->mutex") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: <stable@vger.kernel.org> # v5.5+ Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200702083225.20044-1-chris@chris-wilson.co.uk (cherry picked from commit2377427cdd
) Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Este cometimento está contido em:

cometido por
Rodrigo Vivi

ascendente
9eb0463cfe
cometimento
42723673a1
@@ -198,6 +198,7 @@ vma_create(struct drm_i915_gem_object *obj,
|
||||
cmp = i915_vma_compare(pos, vm, view);
|
||||
if (cmp == 0) {
|
||||
spin_unlock(&obj->vma.lock);
|
||||
i915_vm_put(vm);
|
||||
i915_vma_free(vma);
|
||||
return pos;
|
||||
}
|
||||
|
Criar uma nova questão referindo esta
Bloquear um utilizador