On Tue, Oct 05, 2021 at 01:37:26PM +0200, Christian König wrote: > Simplifying the code a bit. > > Signed-off-by: Christian König <christian.koenig@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 14 ++++---------- > 1 file changed, 4 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > index e8d70b6e6737..722e3c9e8882 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > @@ -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) { ^false? At least I'm not seeing the code look at the exclusive fence here. -Daniel > + if (amdkfd_fence_check_mm(f, current->mm)) > + return false; > } > > switch (bo->resource->mem_type) { > -- > 2.25.1 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch