I commented on patches 2 and 3 in separate emails. The rest of the series is Reviewed-by: Felix Kuehling <Felix.Kuehling@xxxxxxx> On 2019-02-19 8:40 a.m., Christian König wrote: > Clear the VM PDs/PTs only after initializing all the structures. > > Signed-off-by: Christian König <christian.koenig@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > index 942b5ebc6dc2..12d51d96491e 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > @@ -945,10 +945,6 @@ int amdgpu_vm_alloc_pts(struct amdgpu_device *adev, > if (r) > return r; > > - r = amdgpu_vm_clear_bo(adev, vm, pt, cursor.level, ats); > - if (r) > - goto error_free_pt; > - > if (vm->use_cpu_for_update) { > r = amdgpu_bo_kmap(pt, NULL); > if (r) > @@ -961,6 +957,10 @@ int amdgpu_vm_alloc_pts(struct amdgpu_device *adev, > pt->parent = amdgpu_bo_ref(cursor.parent->base.bo); > > amdgpu_vm_bo_base_init(&entry->base, vm, pt); > + > + r = amdgpu_vm_clear_bo(adev, vm, pt, cursor.level, ats); > + if (r) > + goto error_free_pt; > } > > return 0; > @@ -3031,13 +3031,14 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm, > if (r) > goto error_unreserve; > > + amdgpu_vm_bo_base_init(&vm->root.base, vm, root); > + > r = amdgpu_vm_clear_bo(adev, vm, root, > adev->vm_manager.root_level, > vm->pte_support_ats); > if (r) > goto error_unreserve; > > - amdgpu_vm_bo_base_init(&vm->root.base, vm, root); > amdgpu_bo_unreserve(vm->root.base.bo); > > if (pasid) { _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx