Change-Id: I54d38957fe52c83bcee676da05bc480fcf1bc916
Signed-off-by: Flora Cui <flora....@amd.com>
Reviewed-by: Hawking Zhang <hawking.zh...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
index 3c634f0..00f46b0 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
@@ -164,8 +164,10 @@ static int amdgpu_gtt_mgr_new(struct ttm_mem_type_manager 
*man,
        spin_unlock(&mgr->lock);
 
        node = kzalloc(sizeof(*node), GFP_KERNEL);
-       if (!node)
-               return -ENOMEM;
+       if (!node) {
+               r = -ENOMEM;
+               goto err_out;
+       }
 
        node->start = AMDGPU_BO_INVALID_OFFSET;
        node->size = mem->num_pages;
@@ -176,12 +178,20 @@ static int amdgpu_gtt_mgr_new(struct ttm_mem_type_manager 
*man,
                if (unlikely(r)) {
                        kfree(node);
                        mem->mm_node = NULL;
+                       r = 0;
+                       goto err_out;
                }
        } else {
                mem->start = node->start;
        }
 
        return 0;
+err_out:
+       spin_lock(&mgr->lock);
+       mgr->available += mem->num_pages;
+       spin_unlock(&mgr->lock);
+
+       return r;
 }
 
 /**
-- 
2.7.4

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

Reply via email to