drm/amdgpu: Fix double free of dmabuf
amdgpu_amdkfd_gpuvm_free_memory_of_gpu drop dmabuf reference increased in amdgpu_gem_prime_export. amdgpu_bo_destroy drop dmabuf reference increased in amdgpu_gem_prime_import. So remove this extra dma_buf_put to avoid double free. Signed-off-by: xinhui pan <xinhui.pan@amd.com> Tested-by: Felix Kuehling <Felix.Kuehling@amd.com> Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -646,12 +646,6 @@ kfd_mem_attach_dmabuf(struct amdgpu_device *adev, struct kgd_mem *mem,
|
|||||||
if (IS_ERR(gobj))
|
if (IS_ERR(gobj))
|
||||||
return PTR_ERR(gobj);
|
return PTR_ERR(gobj);
|
||||||
|
|
||||||
/* Import takes an extra reference on the dmabuf. Drop it now to
|
|
||||||
* avoid leaking it. We only need the one reference in
|
|
||||||
* kgd_mem->dmabuf.
|
|
||||||
*/
|
|
||||||
dma_buf_put(mem->dmabuf);
|
|
||||||
|
|
||||||
*bo = gem_to_amdgpu_bo(gobj);
|
*bo = gem_to_amdgpu_bo(gobj);
|
||||||
(*bo)->flags |= AMDGPU_GEM_CREATE_PREEMPTIBLE;
|
(*bo)->flags |= AMDGPU_GEM_CREATE_PREEMPTIBLE;
|
||||||
(*bo)->parent = amdgpu_bo_ref(mem->bo);
|
(*bo)->parent = amdgpu_bo_ref(mem->bo);
|
||||||
|
|||||||
Reference in New Issue
Block a user