On Tue, Oct 05, 2021 at 01:37:29PM +0200, Christian König wrote: > Simplifying the code a bit. > > Signed-off-by: Christian König <christian.koenig@xxxxxxx> Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > --- > drivers/gpu/drm/radeon/radeon_sync.c | 22 +++------------------- > 1 file changed, 3 insertions(+), 19 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/radeon_sync.c b/drivers/gpu/drm/radeon/radeon_sync.c > index 9257b60144c4..b991ba1bcd51 100644 > --- a/drivers/gpu/drm/radeon/radeon_sync.c > +++ b/drivers/gpu/drm/radeon/radeon_sync.c > @@ -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; > } > -- > 2.25.1 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch