drm/i915: Assert the drm_mm_node is allocated when on the VM lists
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 19 Jan 2017 19:26:58 +0000 (19:26 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Sat, 21 Jan 2017 10:32:27 +0000 (10:32 +0000)
Before moving the vma between the VM active/inactive lists, assert that
the node is still allocated.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/20170119192659.31789-5-chris@chris-wilson.co.uk
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
drivers/gpu/drm/i915/i915_gem_stolen.c
drivers/gpu/drm/i915/i915_vma.c

index 61cc0fcae3d82ac163b9eda7fc1c591d7151189f..127d698e7c848fb9deca09670d42df8724aa1f93 100644 (file)
@@ -702,6 +702,8 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_i915_private *dev_priv
                goto err_pages;
        }
 
+       GEM_BUG_ON(!drm_mm_node_allocated(&vma->node));
+
        vma->pages = obj->mm.pages;
        vma->flags |= I915_VMA_GLOBAL_BIND;
        __i915_vma_set_map_and_fenceable(vma);
index e58d8799bee264da53ddbf4d73b079b6038379a3..ecb495b1c5d3a9b5f9d8a0fda66d4b8e6cc7cd90 100644 (file)
@@ -45,6 +45,7 @@ i915_vma_retire(struct i915_gem_active *active,
        if (i915_vma_is_active(vma))
                return;
 
+       GEM_BUG_ON(!drm_mm_node_allocated(&vma->node));
        list_move_tail(&vma->vm_link, &vma->vm->inactive_list);
        if (unlikely(i915_vma_is_closed(vma) && !i915_vma_is_pinned(vma)))
                WARN_ON(i915_vma_unbind(vma));
@@ -493,6 +494,7 @@ i915_vma_insert(struct i915_vma *vma, u64 size, u64 alignment, u64 flags)
                GEM_BUG_ON(vma->node.start < start);
                GEM_BUG_ON(vma->node.start + vma->node.size > end);
        }
+       GEM_BUG_ON(!drm_mm_node_allocated(&vma->node));
        GEM_BUG_ON(!i915_gem_valid_gtt_space(vma, obj->cache_level));
 
        list_move_tail(&obj->global_link, &dev_priv->mm.bound_list);