That sounds reasonable. Thanks. Best Regards Rex ________________________________ From: Christian König Sent: Friday, October 26, 2018 3:34 PM To: Zhu, Rex; Deucher, Alexander; amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Subject: Re: [PATCH] drm/amdgpu: fix VM leaf walking Yeah, that came to my mind as well. But this is the only case where we would use the return value and not use cursor->pfn as criteria to abort. So to be consistent I rather don't want to do this, Christian. Am 25.10.18 um 17:43 schrieb Zhu, Rex: How about add a return value for the function amdgpu_vm_pt_next? And change the code as: ret = amdgpu_vm_pt_next(adev, cursor); - while (amdgpu_vm_pt_descendant(adev, cursor)); + if (!ret) + while (amdgpu_vm_pt_descendant(adev, cursor)); Best Regards Rex From: amd-gfx On Behalf Of Zhu, Rex Sent: Thursday, October 25, 2018 11:34 PM To: Deucher, Alexander ; Christian König ; amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Subject: RE: [PATCH] drm/amdgpu: fix VM leaf walking Patch is Tested-by: Rex Zhu Rex.Zhu-5C7GfCeVMHo@public.gmane.org Regards Rex From: amd-gfx > On Behalf Of Deucher, Alexander Sent: Thursday, October 25, 2018 11:08 PM To: Christian König >; amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Subject: Re: [PATCH] drm/amdgpu: fix VM leaf walking Acked-by: Alex Deucher > ________________________________ From: amd-gfx > on behalf of Christian König > Sent: Thursday, October 25, 2018 10:38 AM To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Subject: [PATCH] drm/amdgpu: fix VM leaf walking Make sure we don't try to go down further after the leave walk already ended. This fixes a crash with a new VM test. Signed-off-by: Christian König > --- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c index db0cbf8d219d..352b30409060 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c @@ -542,7 +542,8 @@ static void amdgpu_vm_pt_next_leaf(struct amdgpu_device *adev, struct amdgpu_vm_pt_cursor *cursor) { amdgpu_vm_pt_next(adev, cursor); - while (amdgpu_vm_pt_descendant(adev, cursor)); + if (cursor->pfn != ~0ll) + while (amdgpu_vm_pt_descendant(adev, cursor)); } /** -- 2.17.1 _______________________________________________ amd-gfx mailing list amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx