Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b2241f18 authored by Chris Wilson's avatar Chris Wilson
Browse files

drm/i915: Only GGTT vma may be pinned and prevent shrinking



As only GGTT vma may be permanently pinned and are always at the head of
the object's vma list, as soon as we seen a ppGTT vma we can stop
searching for any_vma_pinned().

Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170525072528.11185-1-chris@chris-wilson.co.uk


Reviewed-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
parent 0ef34ad6
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -65,9 +65,17 @@ static bool any_vma_pinned(struct drm_i915_gem_object *obj)
{
	struct i915_vma *vma;

	list_for_each_entry(vma, &obj->vma_list, obj_link)
	list_for_each_entry(vma, &obj->vma_list, obj_link) {
		/* Only GGTT vma may be permanently pinned, and are always
		 * at the start of the list. We can stop hunting as soon
		 * as we see a ppGTT vma.
		 */
		if (!i915_vma_is_ggtt(vma))
			break;

		if (i915_vma_is_pinned(vma))
			return true;
	}

	return false;
}