Commit 73495209 authored by Christian König's avatar Christian König
Browse files

drm/i915: use new iterator in i915_gem_object_wait_priority

parent 912ff2eb
Loading
Loading
Loading
Loading
+6 −25
Original line number Diff line number Diff line
@@ -151,32 +151,13 @@ i915_gem_object_wait_priority(struct drm_i915_gem_object *obj,
			      unsigned int flags,
			      const struct i915_sched_attr *attr)
{
	struct dma_fence *excl;

	if (flags & I915_WAIT_ALL) {
		struct dma_fence **shared;
		unsigned int count, i;
		int ret;
	struct dma_resv_iter cursor;
	struct dma_fence *fence;

		ret = dma_resv_get_fences(obj->base.resv, &excl, &count,
					  &shared);
		if (ret)
			return ret;

		for (i = 0; i < count; i++) {
			i915_gem_fence_wait_priority(shared[i], attr);
			dma_fence_put(shared[i]);
		}

		kfree(shared);
	} else {
		excl = dma_resv_get_excl_unlocked(obj->base.resv);
	}

	if (excl) {
		i915_gem_fence_wait_priority(excl, attr);
		dma_fence_put(excl);
	}
	dma_resv_iter_begin(&cursor, obj->base.resv, flags & I915_WAIT_ALL);
	dma_resv_for_each_fence_unlocked(&cursor, fence)
		i915_gem_fence_wait_priority(fence, attr);
	dma_resv_iter_end(&cursor);
	return 0;
}