On 2017年11月14日 20:00, Christian König wrote:
Am 14.11.2017 um 12:52 schrieb Christian König:
Am 14.11.2017 um 10:07 schrieb Monk Liu:
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.

NAK, all BOs must be freed before we take down at least the GTT manager.

Ah, wait a second. That is the address space manager here!

Mhm, returning -EBUSY is probably not a good idea, but we should at least print some warning.
Remove it and drm_mm_takedown will print a warning.

Regards,
David Zhou

Regards,
Christian.

That we run into a memory leak is intended, cause that is still better than crashing the system because we access already freed up memory.

Regards,
Christian.


Change-Id: I56e832ac317215a4d9f58edb8e75ea722158715c
Signed-off-by: Monk Liu <monk....@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 88709f9..72819cc 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 4ca622b..3e883e5 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);



_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to