[PATCH] drm/amdgpu: skip unallocated PDs/PTs while invalidating

Tom St Denis tom.stdenis at amd.com
Thu Jan 16 15:29:02 UTC 2020


I'll test it out in a minute.


Tom

On 2020-01-16 10:28 a.m., Christian König wrote:
> We don't need to return an error in this case.
>
> Signed-off-by: Christian König <christian.koenig at amd.com>
> Fixes: d6932a4d86e4 drm/amdgpu: make sure to never allocate PDs/PTs for invalidations
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 8 ++++++--
>   1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index 5cb182231f5d..6cf407aab279 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -1467,8 +1467,12 @@ static int amdgpu_vm_update_ptes(struct amdgpu_vm_update_params *params,
>   			 * smaller than the address shift. Go to the next
>   			 * child entry and try again.
>   			 */
> -			if (!amdgpu_vm_pt_descendant(adev, &cursor))
> -				return -ENOENT;
> +			if (!amdgpu_vm_pt_descendant(adev, &cursor)) {
> +				if (flags & AMDGPU_PTE_VALID)
> +					return -ENOENT;
> +				else
> +					amdgpu_vm_pt_next(adev, &cursor);
> +			}
>   			continue;
>   		} else if (frag >= parent_shift) {
>   			/* If the fragment size is even larger than the parent


More information about the amd-gfx mailing list