On 5/21/25 05:56, Emily Deng wrote:
> For the evict fail case, the evict error should be returned.
> 
> v2: Consider ENOENT case.
> 
> Signed-off-by: Emily Deng <emily.d...@amd.com>
> ---
>  drivers/gpu/drm/ttm/ttm_resource.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/ttm/ttm_resource.c 
> b/drivers/gpu/drm/ttm/ttm_resource.c
> index 097716bd248a..abf104ae9d35 100644
> --- a/drivers/gpu/drm/ttm/ttm_resource.c
> +++ b/drivers/gpu/drm/ttm/ttm_resource.c
> @@ -511,12 +511,12 @@ int ttm_resource_manager_evict_all(struct ttm_device 
> *bdev,
>               .force_alloc = true
>       };
>       struct dma_fence *fence;
> -     int ret;
> +     int ret, evict_ret = 0;
>  
>       do {
> -             ret = ttm_bo_evict_first(bdev, man, &ctx);
> +             evict_ret = ttm_bo_evict_first(bdev, man, &ctx);
>               cond_resched();
> -     } while (!ret);
> +     } while (!evict_ret);


We should probably abort here directly when the eviction failed for some reason 
(except for -ENOENT) and not wait for the move to finish.

Regards,
Christian.

>  
>       spin_lock(&man->move_lock);
>       fence = dma_fence_get(man->move);
> @@ -529,7 +529,7 @@ int ttm_resource_manager_evict_all(struct ttm_device 
> *bdev,
>                       return ret;
>       }
>  
> -     return 0;
> +     return (evict_ret == -ENOENT) ? 0 : evict_ret;
>  }
>  EXPORT_SYMBOL(ttm_resource_manager_evict_all);
>  

Reply via email to