drm/amdgpu: use new iterator in amdgpu_ttm_bo_eviction_valuable
authorChristian König <christian.koenig@amd.com>
Tue, 15 Jun 2021 18:30:10 +0000 (20:30 +0200)
committerChristian König <christian.koenig@amd.com>
Fri, 22 Oct 2021 12:41:59 +0000 (14:41 +0200)
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-13-christian.koenig@amd.com
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c

index e8d70b6e6737dfff46d3ffafdeac2634574c46a9..722e3c9e88824d9a9339bd75453d612af41e82c5 100644 (file)
@@ -1345,10 +1345,9 @@ static bool amdgpu_ttm_bo_eviction_valuable(struct ttm_buffer_object *bo,
                                            const struct ttm_place *place)
 {
        unsigned long num_pages = bo->resource->num_pages;
+       struct dma_resv_iter resv_cursor;
        struct amdgpu_res_cursor cursor;
-       struct dma_resv_list *flist;
        struct dma_fence *f;
-       int i;
 
        /* Swapout? */
        if (bo->resource->mem_type == TTM_PL_SYSTEM)
@@ -1362,14 +1361,9 @@ static bool amdgpu_ttm_bo_eviction_valuable(struct ttm_buffer_object *bo,
         * If true, then return false as any KFD process needs all its BOs to
         * be resident to run successfully
         */
-       flist = dma_resv_shared_list(bo->base.resv);
-       if (flist) {
-               for (i = 0; i < flist->shared_count; ++i) {
-                       f = rcu_dereference_protected(flist->shared[i],
-                               dma_resv_held(bo->base.resv));
-                       if (amdkfd_fence_check_mm(f, current->mm))
-                               return false;
-               }
+       dma_resv_for_each_fence(&resv_cursor, bo->base.resv, true, f) {
+               if (amdkfd_fence_check_mm(f, current->mm))
+                       return false;
        }
 
        switch (bo->resource->mem_type) {