Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdgpu: fix gtt available page num accounting

Signed-off-by: Flora Cui <Flora.Cui@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Flora Cui and committed by
Alex Deucher
47e50d5c 10e2ca34

+12 -2
+12 -2
drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
··· 164 164 spin_unlock(&mgr->lock); 165 165 166 166 node = kzalloc(sizeof(*node), GFP_KERNEL); 167 - if (!node) 168 - return -ENOMEM; 167 + if (!node) { 168 + r = -ENOMEM; 169 + goto err_out; 170 + } 169 171 170 172 node->start = AMDGPU_BO_INVALID_OFFSET; 171 173 node->size = mem->num_pages; ··· 178 176 if (unlikely(r)) { 179 177 kfree(node); 180 178 mem->mm_node = NULL; 179 + r = 0; 180 + goto err_out; 181 181 } 182 182 } else { 183 183 mem->start = node->start; 184 184 } 185 185 186 186 return 0; 187 + err_out: 188 + spin_lock(&mgr->lock); 189 + mgr->available += mem->num_pages; 190 + spin_unlock(&mgr->lock); 191 + 192 + return r; 187 193 } 188 194 189 195 /**