To spare ourselves a long line later, refactor the repeated check of
bind_count vs pin_count to a helper.

Suggested-by: Joonas Lahtinen <[email protected]>
Signed-off-by: Chris Wilson <[email protected]>
Cc: Joonas Lahtinen <[email protected]>
Cc: Mika Kuoppala <[email protected]>
Cc: Matthew Auld <[email protected]>
---
 drivers/gpu/drm/i915/i915_vma.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c
index 9324d476e0a7..0b3de2f19e1c 100644
--- a/drivers/gpu/drm/i915/i915_vma.c
+++ b/drivers/gpu/drm/i915/i915_vma.c
@@ -459,6 +459,17 @@ bool i915_gem_valid_gtt_space(struct i915_vma *vma, 
unsigned long cache_level)
        return true;
 }
 
+static void assert_bind_count(struct drm_i915_gem_object *obj)
+{
+       /*
+        * Combine the assertion that the object is bound and that we have
+        * pinned its pages. But we should never have pinned the pages
+        * more than we have bound the object. (This, of course, assumes that
+        * no one else decides to pin the pages!)
+        */
+       GEM_BUG_ON(atomic_read(&obj->mm.pages_pin_count) < obj->bind_count);
+}
+
 /**
  * i915_vma_insert - finds a slot for the vma in its address space
  * @vma: the vma
@@ -595,7 +606,7 @@ i915_vma_insert(struct i915_vma *vma, u64 size, u64 
alignment, u64 flags)
        obj->bind_count++;
        spin_unlock(&dev_priv->mm.obj_lock);
 
-       GEM_BUG_ON(atomic_read(&obj->mm.pages_pin_count) < obj->bind_count);
+       assert_bind_count(obj);
 
        return 0;
 
@@ -633,7 +644,7 @@ i915_vma_remove(struct i915_vma *vma)
         * reaped by the shrinker.
         */
        i915_gem_object_unpin_pages(obj);
-       GEM_BUG_ON(atomic_read(&obj->mm.pages_pin_count) < obj->bind_count);
+       assert_bind_count(obj);
 }
 
 int __i915_vma_do_pin(struct i915_vma *vma,
-- 
2.17.1

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to