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

drm/scheduler: use new iterator in drm_sched_job_add_implicit_dependencies v2

parent dbcae3bf
Loading
Loading
Loading
Loading
+6 −20
Original line number Diff line number Diff line
@@ -699,31 +699,17 @@ int drm_sched_job_add_implicit_dependencies(struct drm_sched_job *job,
					    struct drm_gem_object *obj,
					    bool write)
{
	struct dma_resv_iter cursor;
	struct dma_fence *fence;
	int ret;
	struct dma_fence **fences;
	unsigned int i, fence_count;

	if (!write) {
		struct dma_fence *fence = dma_resv_get_excl_unlocked(obj->resv);

		return drm_sched_job_add_dependency(job, fence);
	}

	ret = dma_resv_get_fences(obj->resv, NULL, &fence_count, &fences);
	if (ret || !fence_count)
		return ret;

	for (i = 0; i < fence_count; i++) {
		ret = drm_sched_job_add_dependency(job, fences[i]);
	dma_resv_for_each_fence(&cursor, obj->resv, write, fence) {
		ret = drm_sched_job_add_dependency(job, fence);
		if (ret)
			break;
	}

	for (; i < fence_count; i++)
		dma_fence_put(fences[i]);
	kfree(fences);
			return ret;
	}
	return 0;
}
EXPORT_SYMBOL(drm_sched_job_add_implicit_dependencies);