Message ID | 20220707102453.3633-3-christian.koenig@amd.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/6] drm/ttm: rename and cleanup ttm_bo_init_reserved | expand |
>-----Original Message----- >From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of >Christian König >Sent: Thursday, July 7, 2022 6:25 AM >To: intel-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org; >nouveau@lists.freedesktop.org; amd-gfx@lists.freedesktop.org >Cc: Christian König <christian.koenig@amd.com> >Subject: [Intel-gfx] [PATCH 2/6] drm/amdgpu: audit bo->resource usage > >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> M >--- > drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 2 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 3 ++- > 2 files changed, 3 insertions(+), 2 deletions(-) > >diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c >b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c >index d9cfe259f2a9..677d1dfab37f 100644 >--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c >+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c >@@ -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; >diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c >b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c >index be6f76a30ac6..3bddf266e8b5 100644 >--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c >+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c >@@ -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; > } >-- >2.25.1
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index d9cfe259f2a9..677d1dfab37f 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -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; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index be6f76a30ac6..3bddf266e8b5 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -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; }
Make sure we can at least move and release BOs without backing store. Signed-off-by: Christian König <christian.koenig@amd.com> --- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-)