mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-04 20:19:47 +08:00 
			
		
		
		
	drm/radeon: use new iterator in radeon_sync_resv
Simplifying the code a bit. 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-16-christian.koenig@amd.com
This commit is contained in:
		
							parent
							
								
									8315e2975e
								
							
						
					
					
						commit
						0597ca7b43
					
				| @ -91,33 +91,17 @@ int radeon_sync_resv(struct radeon_device *rdev, | ||||
| 		     struct dma_resv *resv, | ||||
| 		     bool shared) | ||||
| { | ||||
| 	struct dma_resv_list *flist; | ||||
| 	struct dma_fence *f; | ||||
| 	struct dma_resv_iter cursor; | ||||
| 	struct radeon_fence *fence; | ||||
| 	unsigned i; | ||||
| 	struct dma_fence *f; | ||||
| 	int r = 0; | ||||
| 
 | ||||
| 	/* always sync to the exclusive fence */ | ||||
| 	f = dma_resv_excl_fence(resv); | ||||
| 	fence = f ? to_radeon_fence(f) : NULL; | ||||
| 	if (fence && fence->rdev == rdev) | ||||
| 		radeon_sync_fence(sync, fence); | ||||
| 	else if (f) | ||||
| 		r = dma_fence_wait(f, true); | ||||
| 
 | ||||
| 	flist = dma_resv_shared_list(resv); | ||||
| 	if (shared || !flist || r) | ||||
| 		return r; | ||||
| 
 | ||||
| 	for (i = 0; i < flist->shared_count; ++i) { | ||||
| 		f = rcu_dereference_protected(flist->shared[i], | ||||
| 					      dma_resv_held(resv)); | ||||
| 	dma_resv_for_each_fence(&cursor, resv, shared, f) { | ||||
| 		fence = to_radeon_fence(f); | ||||
| 		if (fence && fence->rdev == rdev) | ||||
| 			radeon_sync_fence(sync, fence); | ||||
| 		else | ||||
| 			r = dma_fence_wait(f, true); | ||||
| 
 | ||||
| 		if (r) | ||||
| 			break; | ||||
| 	} | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Christian König
						Christian König