[PATCH] drm/amdgpu: reserve the pd while cleaning up PRTs

Felix Kuehling felix.kuehling at amd.com
Mon Feb 7 14:36:41 UTC 2022


Am 2022-02-07 um 03:07 schrieb Christian König:
> We want to have lockdep annotation here, so make sure that we reserve
> the PD while removing PRTs even if it isn't strictly necessary since the
> VM object is about to be destroyed anyway.
>
> Signed-off-by: Christian König <christian.koenig at amd.com>

Reviewed-by: Felix Kuehling <Felix.Kuehling at amd.com>


> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 6 ++++--
>   1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> index efd13898c83e..9f985bd463be 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> @@ -1194,8 +1194,6 @@ void amdgpu_driver_postclose_kms(struct drm_device *dev,
>   	if (amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_VCE) != NULL)
>   		amdgpu_vce_free_handles(adev, file_priv);
>   
> -	amdgpu_vm_bo_del(adev, fpriv->prt_va);
> -
>   	if (amdgpu_mcbp || amdgpu_sriov_vf(adev)) {
>   		/* TODO: how to handle reserve failure */
>   		BUG_ON(amdgpu_bo_reserve(adev->virt.csa_obj, true));
> @@ -1206,6 +1204,10 @@ void amdgpu_driver_postclose_kms(struct drm_device *dev,
>   
>   	pasid = fpriv->vm.pasid;
>   	pd = amdgpu_bo_ref(fpriv->vm.root.bo);
> +	if (!WARN_ON(amdgpu_bo_reserve(pd, true))) {
> +		amdgpu_vm_bo_del(adev, fpriv->prt_va);
> +		amdgpu_bo_unreserve(pd);
> +	}
>   
>   	amdgpu_ctx_mgr_fini(&fpriv->ctx_mgr);
>   	amdgpu_vm_fini(adev, &fpriv->vm);


More information about the amd-gfx mailing list