On 2021-09-07 10:14, Christian König wrote: > The memory backing old_mem is already freed at that point, move the > check a bit more up. > > Signed-off-by: Christian König <christian.koenig@xxxxxxx> > Fixes: bfa3357ef9ab ("drm/ttm: allocate resource object instead of embedding it v2") > Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1699 > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > index 446943e32e3e..e2896ac2c9ce 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > @@ -513,6 +513,15 @@ static int amdgpu_bo_move(struct ttm_buffer_object *bo, bool evict, > goto out; > } > > + if (bo->type == ttm_bo_type_device && > + new_mem->mem_type == TTM_PL_VRAM && > + old_mem->mem_type != TTM_PL_VRAM) { > + /* amdgpu_bo_fault_reserve_notify will re-set this if the CPU > + * accesses the BO after it's moved. > + */ > + abo->flags &= ~AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED; > + } > + > if (adev->mman.buffer_funcs_enabled) { > if (((old_mem->mem_type == TTM_PL_SYSTEM && > new_mem->mem_type == TTM_PL_VRAM) || > @@ -543,15 +552,6 @@ static int amdgpu_bo_move(struct ttm_buffer_object *bo, bool evict, > return r; > } > > - if (bo->type == ttm_bo_type_device && > - new_mem->mem_type == TTM_PL_VRAM && > - old_mem->mem_type != TTM_PL_VRAM) { > - /* amdgpu_bo_fault_reserve_notify will re-set this if the CPU > - * accesses the BO after it's moved. > - */ > - abo->flags &= ~AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED; > - } > - > out: > /* update statistics */ > atomic64_add(bo->base.size, &adev->num_bytes_moved); > Reviewed-by: Michel Dänzer <mdaenzer@xxxxxxxxxx> Thanks! -- Earthling Michel Dänzer | https://redhat.com Libre software enthusiast | Mesa and X developer