Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 85a4b579 authored by Christian König's avatar Christian König Committed by Alex Deucher
Browse files

drm/amdgpu: free userptrs even if GTT isn't bound



This fixes a memory leak since binding GTT only on demand.

Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 3d5f4d47
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -757,6 +757,9 @@ static int amdgpu_ttm_backend_unbind(struct ttm_tt *ttm)
{
	struct amdgpu_ttm_tt *gtt = (void *)ttm;

	if (gtt->userptr)
		amdgpu_ttm_tt_unpin_userptr(ttm);

	if (!amdgpu_ttm_is_bound(ttm))
		return 0;

@@ -764,9 +767,6 @@ static int amdgpu_ttm_backend_unbind(struct ttm_tt *ttm)
	if (gtt->adev->gart.ready)
		amdgpu_gart_unbind(gtt->adev, gtt->offset, ttm->num_pages);

	if (gtt->userptr)
		amdgpu_ttm_tt_unpin_userptr(ttm);

	spin_lock(&gtt->adev->gtt_list_lock);
	list_del_init(&gtt->list);
	spin_unlock(&gtt->adev->gtt_list_lock);