diff options
author | Christian König <christian.koenig@amd.com> | 2021-06-16 09:23:50 +0200 |
---|---|---|
committer | Christian König <christian.koenig@amd.com> | 2021-10-20 14:07:54 +0200 |
commit | 0597ca7b43e41c509bd0feb143bdfb7278496397 (patch) | |
tree | fc6c53eb419227ccea191ed8b998977fe777e94f /drivers/gpu/drm/radeon/radeon_sync.c | |
parent | drm/msm: use new iterator in msm_gem_describe (diff) | |
download | linux-0597ca7b43e41c509bd0feb143bdfb7278496397.tar.xz linux-0597ca7b43e41c509bd0feb143bdfb7278496397.zip |
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
Diffstat (limited to '')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_sync.c | 22 |
1 files 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; } |