Commit 47e50d5c authored by Flora Cui's avatar Flora Cui Committed by Alex Deucher

drm/amdgpu: fix gtt available page num accounting

Signed-off-by: default avatarFlora Cui <Flora.Cui@amd.com>
Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 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%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment