Commit 2ff6e69c authored by Dave Airlie's avatar Dave Airlie
Browse files

drm/ttm: wrap tt destroy. (v2)



All places this was called was using bo->ttm either direct
or indirectly.

v2: move to ttm_bo

Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200915024007.67163-3-airlied@gmail.com
parent 7eec9151
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -301,10 +301,8 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo,

out_err:
	new_man = ttm_manager_type(bdev, bo->mem.mem_type);
	if (!new_man->use_tt) {
		ttm_tt_destroy(bdev, bo->ttm);
		bo->ttm = NULL;
	}
	if (!new_man->use_tt)
		ttm_bo_tt_destroy(bo);

	return ret;
}
@@ -322,8 +320,7 @@ static void ttm_bo_cleanup_memtype_use(struct ttm_buffer_object *bo)
	if (bo->bdev->driver->move_notify)
		bo->bdev->driver->move_notify(bo, false, NULL);

	ttm_tt_destroy(bo->bdev, bo->ttm);
	bo->ttm = NULL;
	ttm_bo_tt_destroy(bo);
	ttm_resource_free(bo, &bo->mem);
}

@@ -1613,3 +1610,9 @@ void ttm_bo_swapout_all(void)
	while (ttm_bo_swapout(&ttm_bo_glob, &ctx) == 0);
}
EXPORT_SYMBOL(ttm_bo_swapout_all);

void ttm_bo_tt_destroy(struct ttm_buffer_object *bo)
{
	ttm_tt_destroy(bo->bdev, bo->ttm);
	bo->ttm = NULL;
}
+6 −12
Original line number Diff line number Diff line
@@ -297,10 +297,8 @@ int ttm_bo_move_memcpy(struct ttm_buffer_object *bo,
	*old_mem = *new_mem;
	new_mem->mm_node = NULL;

	if (!man->use_tt) {
		ttm_tt_destroy(bdev, ttm);
		bo->ttm = NULL;
	}
	if (!man->use_tt)
		ttm_bo_tt_destroy(bo);

out1:
	ttm_resource_iounmap(bdev, old_mem, new_iomap);
@@ -542,10 +540,8 @@ int ttm_bo_move_accel_cleanup(struct ttm_buffer_object *bo,
		if (ret)
			return ret;

		if (!man->use_tt) {
			ttm_tt_destroy(bdev, bo->ttm);
			bo->ttm = NULL;
		}
		if (!man->use_tt)
			ttm_bo_tt_destroy(bo);
		ttm_bo_free_old_node(bo);
	} else {
		/**
@@ -665,10 +661,8 @@ int ttm_bo_pipeline_move(struct ttm_buffer_object *bo,
		if (ret)
			return ret;

		if (!to->use_tt) {
			ttm_tt_destroy(bdev, bo->ttm);
			bo->ttm = NULL;
		}
		if (!to->use_tt)
			ttm_bo_tt_destroy(bo);
		ttm_bo_free_old_node(bo);
	}

+5 −0
Original line number Diff line number Diff line
@@ -684,6 +684,11 @@ int ttm_bo_pipeline_gutting(struct ttm_buffer_object *bo);
 */
pgprot_t ttm_io_prot(uint32_t caching_flags, pgprot_t tmp);

/**
 * ttm_bo_tt_destroy.
 */
void ttm_bo_tt_destroy(struct ttm_buffer_object *bo);

/**
 * ttm_range_man_init
 *