From 864d4501b95837d225eeca9b6e3ff3925baef063 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Christian=20K=C3=B6nig?= Date: Fri, 14 Sep 2018 15:04:38 +0200 Subject: [PATCH] test/amdgpu: add proper error handling v2 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Otherwise the calling function won't notice that something is wrong. v2: check map result as well Signed-off-by: Christian König Reviewed-by: Alex Deucher --- tests/amdgpu/amdgpu_test.h | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/tests/amdgpu/amdgpu_test.h b/tests/amdgpu/amdgpu_test.h index f2ece3c3..84ed3cc8 100644 --- a/tests/amdgpu/amdgpu_test.h +++ b/tests/amdgpu/amdgpu_test.h @@ -219,17 +219,34 @@ static inline amdgpu_bo_handle gpu_mem_alloc( r = amdgpu_bo_alloc(device_handle, &req, &buf_handle); CU_ASSERT_EQUAL(r, 0); + if (r) + return NULL; r = amdgpu_va_range_alloc(device_handle, amdgpu_gpu_va_range_general, size, alignment, 0, vmc_addr, va_handle, 0); CU_ASSERT_EQUAL(r, 0); + if (r) + goto error_free_bo; - r = amdgpu_bo_va_op(buf_handle, 0, size, *vmc_addr, 0, AMDGPU_VA_OP_MAP); + r = amdgpu_bo_va_op(buf_handle, 0, size, *vmc_addr, 0, + AMDGPU_VA_OP_MAP); CU_ASSERT_EQUAL(r, 0); + if (r) + goto error_free_va; return buf_handle; + +error_free_va: + r = amdgpu_va_range_free(*va_handle); + CU_ASSERT_EQUAL(r, 0); + +error_free_bo: + r = amdgpu_bo_free(buf_handle); + CU_ASSERT_EQUAL(r, 0); + + return NULL; } static inline int gpu_mem_free(amdgpu_bo_handle bo, @@ -239,16 +256,23 @@ static inline int gpu_mem_free(amdgpu_bo_handle bo, { int r; + if (!bo) + return 0; + r = amdgpu_bo_va_op(bo, 0, size, vmc_addr, 0, AMDGPU_VA_OP_UNMAP); CU_ASSERT_EQUAL(r, 0); + if (r) + return r; r = amdgpu_va_range_free(va_handle); CU_ASSERT_EQUAL(r, 0); + if (r) + return r; r = amdgpu_bo_free(bo); CU_ASSERT_EQUAL(r, 0); - return 0; + return r; } static inline int -- 2.11.0