提交 47e50d5c 编写于 作者: F Flora Cui 提交者: Alex Deucher

drm/amdgpu: fix gtt available page num accounting

Signed-off-by: NFlora Cui <Flora.Cui@amd.com>
Reviewed-by: NHawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: NChristian König <christian.koenig@amd.com>
Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
上级 10e2ca34
...@@ -164,8 +164,10 @@ static int amdgpu_gtt_mgr_new(struct ttm_mem_type_manager *man, ...@@ -164,8 +164,10 @@ static int amdgpu_gtt_mgr_new(struct ttm_mem_type_manager *man,
spin_unlock(&mgr->lock); spin_unlock(&mgr->lock);
node = kzalloc(sizeof(*node), GFP_KERNEL); node = kzalloc(sizeof(*node), GFP_KERNEL);
if (!node) if (!node) {
return -ENOMEM; r = -ENOMEM;
goto err_out;
}
node->start = AMDGPU_BO_INVALID_OFFSET; node->start = AMDGPU_BO_INVALID_OFFSET;
node->size = mem->num_pages; node->size = mem->num_pages;
...@@ -176,12 +178,20 @@ static int amdgpu_gtt_mgr_new(struct ttm_mem_type_manager *man, ...@@ -176,12 +178,20 @@ static int amdgpu_gtt_mgr_new(struct ttm_mem_type_manager *man,
if (unlikely(r)) { if (unlikely(r)) {
kfree(node); kfree(node);
mem->mm_node = NULL; mem->mm_node = NULL;
r = 0;
goto err_out;
} }
} else { } else {
mem->start = node->start; mem->start = node->start;
} }
return 0; return 0;
err_out:
spin_lock(&mgr->lock);
mgr->available += mem->num_pages;
spin_unlock(&mgr->lock);
return r;
} }
/** /**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册