drm/amdgpu: audit bo->resource usage
authorChristian König <christian.koenig@amd.com>
Fri, 17 Dec 2021 15:13:09 +0000 (16:13 +0100)
committerChristian König <christian.koenig@amd.com>
Mon, 11 Jul 2022 08:59:20 +0000 (10:59 +0200)
Make sure we can at least move and release BOs without backing store.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220707102453.3633-3-christian.koenig@amd.com
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c

index d9cfe25..677d1df 100644 (file)
@@ -1305,7 +1305,7 @@ void amdgpu_bo_release_notify(struct ttm_buffer_object *bo)
        if (bo->base.resv == &bo->base._resv)
                amdgpu_amdkfd_remove_fence_on_pt_pd_bos(abo);
 
-       if (bo->resource->mem_type != TTM_PL_VRAM ||
+       if (!bo->resource || bo->resource->mem_type != TTM_PL_VRAM ||
            !(abo->flags & AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE) ||
            adev->in_suspend || adev->shutdown)
                return;
index be6f76a..3bddf26 100644 (file)
@@ -471,7 +471,8 @@ static int amdgpu_bo_move(struct ttm_buffer_object *bo, bool evict,
 
        adev = amdgpu_ttm_adev(bo->bdev);
 
-       if (old_mem->mem_type == TTM_PL_SYSTEM && bo->ttm == NULL) {
+       if (!old_mem || (old_mem->mem_type == TTM_PL_SYSTEM &&
+                        bo->ttm == NULL)) {
                ttm_bo_move_null(bo, new_mem);
                goto out;
        }