mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-05 08:26:59 +00:00
drm/ttm: introduce ttm_bo_move_null
This pattern is cut-n-pasted across 4 drivers, switch it to a WARN_ON instead, as BUG_ON is considered a bad idea usually. Reviewed-by: Christian König <christian.koenig@amd.com> Reviewed-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200907204630.1406528-2-airlied@gmail.com
This commit is contained in:
parent
884e5cc1dd
commit
ecfe6953fa
5 changed files with 24 additions and 47 deletions
|
@ -174,24 +174,6 @@ static int amdgpu_verify_access(struct ttm_buffer_object *bo, struct file *filp)
|
||||||
filp->private_data);
|
filp->private_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* amdgpu_move_null - Register memory for a buffer object
|
|
||||||
*
|
|
||||||
* @bo: The bo to assign the memory to
|
|
||||||
* @new_mem: The memory to be assigned.
|
|
||||||
*
|
|
||||||
* Assign the memory from new_mem to the memory of the buffer object bo.
|
|
||||||
*/
|
|
||||||
static void amdgpu_move_null(struct ttm_buffer_object *bo,
|
|
||||||
struct ttm_resource *new_mem)
|
|
||||||
{
|
|
||||||
struct ttm_resource *old_mem = &bo->mem;
|
|
||||||
|
|
||||||
BUG_ON(old_mem->mm_node != NULL);
|
|
||||||
*old_mem = *new_mem;
|
|
||||||
new_mem->mm_node = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* amdgpu_mm_node_addr - Compute the GPU relative offset of a GTT buffer.
|
* amdgpu_mm_node_addr - Compute the GPU relative offset of a GTT buffer.
|
||||||
*
|
*
|
||||||
|
@ -676,7 +658,7 @@ static int amdgpu_bo_move(struct ttm_buffer_object *bo, bool evict,
|
||||||
adev = amdgpu_ttm_adev(bo->bdev);
|
adev = amdgpu_ttm_adev(bo->bdev);
|
||||||
|
|
||||||
if (old_mem->mem_type == TTM_PL_SYSTEM && bo->ttm == NULL) {
|
if (old_mem->mem_type == TTM_PL_SYSTEM && bo->ttm == NULL) {
|
||||||
amdgpu_move_null(bo, new_mem);
|
ttm_bo_move_null(bo, new_mem);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if ((old_mem->mem_type == TTM_PL_TT &&
|
if ((old_mem->mem_type == TTM_PL_TT &&
|
||||||
|
@ -684,7 +666,7 @@ static int amdgpu_bo_move(struct ttm_buffer_object *bo, bool evict,
|
||||||
(old_mem->mem_type == TTM_PL_SYSTEM &&
|
(old_mem->mem_type == TTM_PL_SYSTEM &&
|
||||||
new_mem->mem_type == TTM_PL_TT)) {
|
new_mem->mem_type == TTM_PL_TT)) {
|
||||||
/* bind is enough */
|
/* bind is enough */
|
||||||
amdgpu_move_null(bo, new_mem);
|
ttm_bo_move_null(bo, new_mem);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (old_mem->mem_type == AMDGPU_PL_GDS ||
|
if (old_mem->mem_type == AMDGPU_PL_GDS ||
|
||||||
|
@ -694,7 +676,7 @@ static int amdgpu_bo_move(struct ttm_buffer_object *bo, bool evict,
|
||||||
new_mem->mem_type == AMDGPU_PL_GWS ||
|
new_mem->mem_type == AMDGPU_PL_GWS ||
|
||||||
new_mem->mem_type == AMDGPU_PL_OA) {
|
new_mem->mem_type == AMDGPU_PL_OA) {
|
||||||
/* Nothing to save here */
|
/* Nothing to save here */
|
||||||
amdgpu_move_null(bo, new_mem);
|
ttm_bo_move_null(bo, new_mem);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -993,9 +993,7 @@ nouveau_bo_move(struct ttm_buffer_object *bo, bool evict,
|
||||||
|
|
||||||
/* Fake bo copy. */
|
/* Fake bo copy. */
|
||||||
if (old_reg->mem_type == TTM_PL_SYSTEM && !bo->ttm) {
|
if (old_reg->mem_type == TTM_PL_SYSTEM && !bo->ttm) {
|
||||||
BUG_ON(bo->mem.mm_node != NULL);
|
ttm_bo_move_null(bo, new_reg);
|
||||||
bo->mem = *new_reg;
|
|
||||||
new_reg->mm_node = NULL;
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -158,16 +158,6 @@ static struct ttm_tt *qxl_ttm_tt_create(struct ttm_buffer_object *bo,
|
||||||
return >t->ttm;
|
return >t->ttm;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void qxl_move_null(struct ttm_buffer_object *bo,
|
|
||||||
struct ttm_resource *new_mem)
|
|
||||||
{
|
|
||||||
struct ttm_resource *old_mem = &bo->mem;
|
|
||||||
|
|
||||||
BUG_ON(old_mem->mm_node != NULL);
|
|
||||||
*old_mem = *new_mem;
|
|
||||||
new_mem->mm_node = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int qxl_bo_move(struct ttm_buffer_object *bo, bool evict,
|
static int qxl_bo_move(struct ttm_buffer_object *bo, bool evict,
|
||||||
struct ttm_operation_ctx *ctx,
|
struct ttm_operation_ctx *ctx,
|
||||||
struct ttm_resource *new_mem)
|
struct ttm_resource *new_mem)
|
||||||
|
@ -180,7 +170,7 @@ static int qxl_bo_move(struct ttm_buffer_object *bo, bool evict,
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
if (old_mem->mem_type == TTM_PL_SYSTEM && bo->ttm == NULL) {
|
if (old_mem->mem_type == TTM_PL_SYSTEM && bo->ttm == NULL) {
|
||||||
qxl_move_null(bo, new_mem);
|
ttm_bo_move_null(bo, new_mem);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return ttm_bo_move_memcpy(bo, ctx, new_mem);
|
return ttm_bo_move_memcpy(bo, ctx, new_mem);
|
||||||
|
|
|
@ -148,16 +148,6 @@ static int radeon_verify_access(struct ttm_buffer_object *bo, struct file *filp)
|
||||||
filp->private_data);
|
filp->private_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void radeon_move_null(struct ttm_buffer_object *bo,
|
|
||||||
struct ttm_resource *new_mem)
|
|
||||||
{
|
|
||||||
struct ttm_resource *old_mem = &bo->mem;
|
|
||||||
|
|
||||||
BUG_ON(old_mem->mm_node != NULL);
|
|
||||||
*old_mem = *new_mem;
|
|
||||||
new_mem->mm_node = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int radeon_move_blit(struct ttm_buffer_object *bo,
|
static int radeon_move_blit(struct ttm_buffer_object *bo,
|
||||||
bool evict, bool no_wait_gpu,
|
bool evict, bool no_wait_gpu,
|
||||||
struct ttm_resource *new_mem,
|
struct ttm_resource *new_mem,
|
||||||
|
@ -316,7 +306,7 @@ static int radeon_bo_move(struct ttm_buffer_object *bo, bool evict,
|
||||||
|
|
||||||
rdev = radeon_get_rdev(bo->bdev);
|
rdev = radeon_get_rdev(bo->bdev);
|
||||||
if (old_mem->mem_type == TTM_PL_SYSTEM && bo->ttm == NULL) {
|
if (old_mem->mem_type == TTM_PL_SYSTEM && bo->ttm == NULL) {
|
||||||
radeon_move_null(bo, new_mem);
|
ttm_bo_move_null(bo, new_mem);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if ((old_mem->mem_type == TTM_PL_TT &&
|
if ((old_mem->mem_type == TTM_PL_TT &&
|
||||||
|
@ -324,7 +314,7 @@ static int radeon_bo_move(struct ttm_buffer_object *bo, bool evict,
|
||||||
(old_mem->mem_type == TTM_PL_SYSTEM &&
|
(old_mem->mem_type == TTM_PL_SYSTEM &&
|
||||||
new_mem->mem_type == TTM_PL_TT)) {
|
new_mem->mem_type == TTM_PL_TT)) {
|
||||||
/* bind is enough */
|
/* bind is enough */
|
||||||
radeon_move_null(bo, new_mem);
|
ttm_bo_move_null(bo, new_mem);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (!rdev->ring[radeon_copy_ring_index(rdev)].ready ||
|
if (!rdev->ring[radeon_copy_ring_index(rdev)].ready ||
|
||||||
|
|
|
@ -520,6 +520,23 @@ static inline void ttm_bo_move_to_lru_tail_unlocked(struct ttm_buffer_object *bo
|
||||||
spin_unlock(&ttm_bo_glob.lru_lock);
|
spin_unlock(&ttm_bo_glob.lru_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ttm_bo_move_null = assign memory for a buffer object.
|
||||||
|
* @bo: The bo to assign the memory to
|
||||||
|
* @new_mem: The memory to be assigned.
|
||||||
|
*
|
||||||
|
* Assign the memory from new_mem to the memory of the buffer object bo.
|
||||||
|
*/
|
||||||
|
static inline void ttm_bo_move_null(struct ttm_buffer_object *bo,
|
||||||
|
struct ttm_resource *new_mem)
|
||||||
|
{
|
||||||
|
struct ttm_resource *old_mem = &bo->mem;
|
||||||
|
|
||||||
|
WARN_ON(old_mem->mm_node != NULL);
|
||||||
|
*old_mem = *new_mem;
|
||||||
|
new_mem->mm_node = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ttm_bo_unreserve
|
* ttm_bo_unreserve
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue