Commit 7626168f authored by Dave Airlie's avatar Dave Airlie
Browse files

drm/ttm: flip tt destroy ordering.



Call the driver first and have it call the common code cleanup.

This is useful later to fix unbind.

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/20200917043040.146575-3-airlied@gmail.com
parent 0b988ca1
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1267,6 +1267,7 @@ static void amdgpu_ttm_backend_destroy(struct ttm_bo_device *bdev,
{
	struct amdgpu_ttm_tt *gtt = (void *)ttm;

	ttm_tt_destroy_common(bdev, ttm);
	if (gtt->usertask)
		put_task_struct(gtt->usertask);

+1 −0
Original line number Diff line number Diff line
@@ -922,6 +922,7 @@ static const struct drm_gem_object_funcs drm_gem_vram_object_funcs = {

static void bo_driver_ttm_tt_destroy(struct ttm_bo_device *bdev, struct ttm_tt *tt)
{
	ttm_tt_destroy_common(bdev, tt);
	ttm_tt_fini(tt);
	kfree(tt);
}
+1 −0
Original line number Diff line number Diff line
@@ -1372,6 +1372,7 @@ nouveau_ttm_tt_destroy(struct ttm_bo_device *bdev,
#if IS_ENABLED(CONFIG_AGP)
	struct nouveau_drm *drm = nouveau_bdev(bdev);
	if (drm->agp.bridge) {
		ttm_tt_destroy_common(bdev, ttm);
		ttm_agp_destroy(ttm);
		return;
	}
+1 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ nouveau_sgdma_destroy(struct ttm_bo_device *bdev, struct ttm_tt *ttm)
	struct nouveau_sgdma_be *nvbe = (struct nouveau_sgdma_be *)ttm;

	if (ttm) {
		ttm_tt_destroy_common(bdev, ttm);
		ttm_dma_tt_fini(&nvbe->ttm);
		kfree(nvbe);
	}
+1 −0
Original line number Diff line number Diff line
@@ -130,6 +130,7 @@ static void qxl_ttm_backend_destroy(struct ttm_bo_device *bdev,
{
	struct qxl_ttm_tt *gtt = (void *)ttm;

	ttm_tt_destroy_common(bdev, ttm);
	ttm_tt_fini(&gtt->ttm);
	kfree(gtt);
}
Loading