diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2207-drm-amdgpu-fix-memleak-in-takedown.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2207-drm-amdgpu-fix-memleak-in-takedown.patch | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2207-drm-amdgpu-fix-memleak-in-takedown.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2207-drm-amdgpu-fix-memleak-in-takedown.patch new file mode 100644 index 00000000..334a1769 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2207-drm-amdgpu-fix-memleak-in-takedown.patch @@ -0,0 +1,56 @@ +From b81e9b828d805d0ddfc8ae897c72d6c1e621f2c8 Mon Sep 17 00:00:00 2001 +From: Monk Liu <Monk.Liu@amd.com> +Date: Tue, 14 Nov 2017 16:48:06 +0800 +Subject: [PATCH 2207/4131] drm/amdgpu:fix memleak in takedown +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +this can fix the memory leak under the case that not all +BO are freed during "takedown" stage, because originally +it blocks following kfree on mgr. + +Change-Id: I56e832ac317215a4d9f58edb8e75ea722158715c +Signed-off-by: Monk Liu <Monk.Liu@amd.com> +Reviewed-by: Christian König <christian.koenig@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c | 6 ------ + drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 5 ----- + 2 files changed, 11 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c +index 85aae26..73135b9 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c +@@ -76,12 +76,6 @@ static int amdgpu_gtt_mgr_fini(struct ttm_mem_type_manager *man) + { + struct amdgpu_gtt_mgr *mgr = man->priv; + +- spin_lock(&mgr->lock); +- if (!drm_mm_clean(&mgr->mm)) { +- spin_unlock(&mgr->lock); +- return -EBUSY; +- } +- + drm_mm_takedown(&mgr->mm); + spin_unlock(&mgr->lock); + kfree(mgr); +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c +index 86d8a96..c9f3336 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c +@@ -68,11 +68,6 @@ static int amdgpu_vram_mgr_fini(struct ttm_mem_type_manager *man) + struct amdgpu_vram_mgr *mgr = man->priv; + + spin_lock(&mgr->lock); +- if (!drm_mm_clean(&mgr->mm)) { +- spin_unlock(&mgr->lock); +- return -EBUSY; +- } +- + drm_mm_takedown(&mgr->mm); + spin_unlock(&mgr->lock); + kfree(mgr); +-- +2.7.4 + |