drm/ttm: fix memory leak while individualizing BOs
authorChristian König <christian.koenig@amd.com>
Wed, 13 Sep 2017 08:43:09 +0000 (10:43 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 13 Sep 2017 16:10:14 +0000 (12:10 -0400)
We need to free the reservation object before we take the BO
from the delayed delete list.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Monk Liu <monk.liu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/ttm/ttm_bo.c

index bee77d31895b3d323cf842bf4b5007698852af36..d79607a1187c866c0e016c89311711c5f1941d6a 100644 (file)
@@ -557,6 +557,8 @@ static int ttm_bo_cleanup_refs_and_unlock(struct ttm_buffer_object *bo,
        }
 
        ttm_bo_del_from_lru(bo);
+       if (!list_empty(&bo->ddestroy) && (bo->resv != &bo->ttm_resv))
+               reservation_object_fini(&bo->ttm_resv);
        list_del_init(&bo->ddestroy);
        kref_put(&bo->list_kref, ttm_bo_ref_bug);