Remove the VMA from the object's list, and remove the VMA's node from
the allocator. This just helps avoid duplication, since we always want
those two things to occur on destroy, and at least for now, we only do
those two actions on destroy anyway.

Signed-off-by: Ben Widawsky <b...@bwidawsk.net>
---
 drivers/gpu/drm/i915/i915_gem.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 8ce3545..4b669e8 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2640,8 +2640,6 @@ i915_gem_object_unbind(struct drm_i915_gem_object *obj)
        obj->map_and_fenceable = true;
 
        vma = i915_gem_obj_to_vma(obj, &dev_priv->gtt.base);
-       list_del(&vma->vma_link);
-       drm_mm_remove_node(&vma->node);
        i915_gem_vma_destroy(vma);
 
        /* Since the unbound list is global, only move to that list if
@@ -3176,7 +3174,6 @@ search_free:
        return 0;
 
 err_out:
-       drm_mm_remove_node(&vma->node);
        i915_gem_vma_destroy(vma);
        i915_gem_object_unpin_pages(obj);
        return ret;
@@ -4020,7 +4017,8 @@ struct i915_vma *i915_gem_vma_create(struct 
drm_i915_gem_object *obj,
 
 void i915_gem_vma_destroy(struct i915_vma *vma)
 {
-       WARN_ON(vma->node.allocated);
+       list_del_init(&vma->vma_link);
+       drm_mm_remove_node(&vma->node);
        kfree(vma);
 }
 
-- 
1.8.3.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to