[PATCH 1/1] drm/amdgpu: Use GEM obj reference for KFD BOs

Christian König ckoenig.leichtzumerken at gmail.com
Wed May 6 08:11:44 UTC 2020


Am 06.05.20 um 02:59 schrieb Felix Kuehling:
> Releasing the AMDGPU BO ref directly leads to problems when BOs were
> exported as DMA bufs. Releasing the GEM reference makes sure that the
> AMDGPU/TTM BO is not freed too early.
>
> Also take a GEM reference when importing BOs from DMABufs to keep
> references to imported BOs balances properly.
>
> Signed-off-by: Felix Kuehling <Felix.Kuehling at amd.com>
> Tested-by: Alex Sierra <alex.sierra at amd.com>

Acked-by: Christian König <christian.koenig at amd.com>

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> index 1247938b1ec1..da8b31a53291 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> @@ -1354,7 +1354,7 @@ int amdgpu_amdkfd_gpuvm_free_memory_of_gpu(
>   	}
>   
>   	/* Free the BO*/
> -	amdgpu_bo_unref(&mem->bo);
> +	drm_gem_object_put_unlocked(&mem->bo->tbo.base);
>   	mutex_destroy(&mem->lock);
>   	kfree(mem);
>   
> @@ -1699,7 +1699,8 @@ int amdgpu_amdkfd_gpuvm_import_dmabuf(struct kgd_dev *kgd,
>   		| KFD_IOC_ALLOC_MEM_FLAGS_WRITABLE
>   		| KFD_IOC_ALLOC_MEM_FLAGS_EXECUTABLE;
>   
> -	(*mem)->bo = amdgpu_bo_ref(bo);
> +	drm_gem_object_get(&bo->tbo.base);
> +	(*mem)->bo = bo;
>   	(*mem)->va = va;
>   	(*mem)->domain = (bo->preferred_domains & AMDGPU_GEM_DOMAIN_VRAM) ?
>   		AMDGPU_GEM_DOMAIN_VRAM : AMDGPU_GEM_DOMAIN_GTT;



More information about the amd-gfx mailing list