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.koenig@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.vetter@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