drm/i915/gem: Reinitialise the local list before repeating
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 5 Dec 2019 13:29:12 +0000 (13:29 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 5 Dec 2019 14:37:25 +0000 (14:37 +0000)
As we may start the loop again, we require our local list of i915_vma
we've processed to be reinitialised.

Fixes: aa5e4453dc05 ("drm/i915/gem: Try to flush pending unbind events")
Closes: https://gitlab.freedesktop.org/drm/intel/issues/731
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Andi Shyti <andi.shyti@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191205132912.606868-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_gem.c

index cc8c6960b689ddde3636d59375e3fe9d6c1d16bb..98b65b718e1a3879f0e2788c14a6ec27500da8f2 100644 (file)
@@ -175,7 +175,7 @@ err_vm:
                i915_vm_close(vm);
                spin_lock(&obj->vma.lock);
        }
-       list_splice(&still_in_list, &obj->vma.list);
+       list_splice_init(&still_in_list, &obj->vma.list);
        spin_unlock(&obj->vma.lock);
 
        if (ret == -EAGAIN && flags & I915_GEM_OBJECT_UNBIND_ACTIVE) {