mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-01 00:58:39 +02:00 
			
		
		
		
	drm/scheduler: use new iterator in drm_sched_job_add_implicit_dependencies v2
Simplifying the code a bit. v2: use dma_resv_for_each_fence Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20211005113742.1101-17-christian.koenig@amd.com
This commit is contained in:
		
							parent
							
								
									dbcae3bfcb
								
							
						
					
					
						commit
						9c2ba26535
					
				
					 1 changed files with 6 additions and 20 deletions
				
			
		|  | @ -699,30 +699,16 @@ int drm_sched_job_add_implicit_dependencies(struct drm_sched_job *job, | ||||||
| 					    struct drm_gem_object *obj, | 					    struct drm_gem_object *obj, | ||||||
| 					    bool write) | 					    bool write) | ||||||
| { | { | ||||||
|  | 	struct dma_resv_iter cursor; | ||||||
|  | 	struct dma_fence *fence; | ||||||
| 	int ret; | 	int ret; | ||||||
| 	struct dma_fence **fences; |  | ||||||
| 	unsigned int i, fence_count; |  | ||||||
| 
 | 
 | ||||||
| 	if (!write) { | 	dma_resv_for_each_fence(&cursor, obj->resv, write, fence) { | ||||||
| 		struct dma_fence *fence = dma_resv_get_excl_unlocked(obj->resv); | 		ret = drm_sched_job_add_dependency(job, fence); | ||||||
| 
 |  | ||||||
| 		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]); |  | ||||||
| 		if (ret) | 		if (ret) | ||||||
| 			break; | 			return ret; | ||||||
| 	} | 	} | ||||||
| 
 | 	return 0; | ||||||
| 	for (; i < fence_count; i++) |  | ||||||
| 		dma_fence_put(fences[i]); |  | ||||||
| 	kfree(fences); |  | ||||||
| 	return ret; |  | ||||||
| } | } | ||||||
| EXPORT_SYMBOL(drm_sched_job_add_implicit_dependencies); | EXPORT_SYMBOL(drm_sched_job_add_implicit_dependencies); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Christian König
						Christian König