On Mon, Mar 21, 2022 at 02:25:59PM +0100, Christian König wrote:
> Those functions are going to become more complex, don't inline them any
> more.
> 
> Signed-off-by: Christian König <christian.koe...@amd.com>
> ---
>  drivers/gpu/drm/ttm/ttm_bo.c | 31 +++++++++++++++++++++++++++++++
>  include/drm/ttm/ttm_bo_api.h | 30 ++----------------------------
>  2 files changed, 33 insertions(+), 28 deletions(-)
> 
> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
> index b119af33e7d7..502617ee9303 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo.c
> @@ -633,6 +633,37 @@ int ttm_mem_evict_first(struct ttm_device *bdev,
>       return ret;
>  }
>  
> +/**
> + * ttm_bo_pin - Pin the buffer object.
> + * @bo: The buffer object to pin
> + *
> + * Make sure the buffer is not evicted any more during memory pressure.

Maybe add kerneldoc cross links here while at it.

"@bo must be unpinned again by calling ttm_bo_unpin()."

or whatever you prefer.

Reviewed-by: Daniel Vetter <daniel.vet...@ffwll.ch>

> + */
> +void ttm_bo_pin(struct ttm_buffer_object *bo)
> +{
> +     dma_resv_assert_held(bo->base.resv);
> +     WARN_ON_ONCE(!kref_read(&bo->kref));
> +     ++bo->pin_count;
> +}
> +EXPORT_SYMBOL(ttm_bo_pin);
> +
> +/**
> + * ttm_bo_unpin - Unpin the buffer object.
> + * @bo: The buffer object to unpin
> + *
> + * Allows the buffer object to be evicted again during memory pressure.
> + */
> +void ttm_bo_unpin(struct ttm_buffer_object *bo)
> +{
> +     dma_resv_assert_held(bo->base.resv);
> +     WARN_ON_ONCE(!kref_read(&bo->kref));
> +     if (bo->pin_count)
> +             --bo->pin_count;
> +     else
> +             WARN_ON_ONCE(true);
> +}
> +EXPORT_SYMBOL(ttm_bo_unpin);
> +
>  /*
>   * Add the last move fence to the BO and reserve a new shared slot. We only 
> use
>   * a shared slot to avoid unecessary sync and rely on the subsequent bo move 
> to
> diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h
> index 3da77fc54552..885b7698fd65 100644
> --- a/include/drm/ttm/ttm_bo_api.h
> +++ b/include/drm/ttm/ttm_bo_api.h
> @@ -524,34 +524,8 @@ ssize_t ttm_bo_io(struct ttm_device *bdev, struct file 
> *filp,
>  int ttm_bo_swapout(struct ttm_buffer_object *bo, struct ttm_operation_ctx 
> *ctx,
>                  gfp_t gfp_flags);
>  
> -/**
> - * ttm_bo_pin - Pin the buffer object.
> - * @bo: The buffer object to pin
> - *
> - * Make sure the buffer is not evicted any more during memory pressure.
> - */
> -static inline void ttm_bo_pin(struct ttm_buffer_object *bo)
> -{
> -     dma_resv_assert_held(bo->base.resv);
> -     WARN_ON_ONCE(!kref_read(&bo->kref));
> -     ++bo->pin_count;
> -}
> -
> -/**
> - * ttm_bo_unpin - Unpin the buffer object.
> - * @bo: The buffer object to unpin
> - *
> - * Allows the buffer object to be evicted again during memory pressure.
> - */
> -static inline void ttm_bo_unpin(struct ttm_buffer_object *bo)
> -{
> -     dma_resv_assert_held(bo->base.resv);
> -     WARN_ON_ONCE(!kref_read(&bo->kref));
> -     if (bo->pin_count)
> -             --bo->pin_count;
> -     else
> -             WARN_ON_ONCE(true);
> -}
> +void ttm_bo_pin(struct ttm_buffer_object *bo);
> +void ttm_bo_unpin(struct ttm_buffer_object *bo);
>  
>  int ttm_mem_evict_first(struct ttm_device *bdev,
>                       struct ttm_resource_manager *man,
> -- 
> 2.25.1
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

Reply via email to