drm/amdgpu/mes: Fix an error handling path in amdgpu_mes_self_test()
authorJianglei Nie <niejianglei2021@163.com>
Tue, 5 Jul 2022 13:46:03 +0000 (21:46 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 5 Jul 2022 20:18:07 +0000 (16:18 -0400)
if amdgpu_mes_ctx_alloc_meta_data() fails, we should call amdgpu_vm_fini()
to handle amdgpu_vm_init().

Add a new lable before amdgpu_vm_init() and goto this lable when
amdgpu_mes_ctx_alloc_meta_data() fails.

Signed-off-by: Jianglei Nie <niejianglei2021@163.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c

index bffde4aa6fe7d184fb82722488a188d4e09e2fa5..ca44aa123a1e66af105cecbb97297a8d30a87398 100644 (file)
@@ -1294,7 +1294,7 @@ int amdgpu_mes_self_test(struct amdgpu_device *adev)
        r = amdgpu_mes_ctx_alloc_meta_data(adev, &ctx_data);
        if (r) {
                DRM_ERROR("failed to alloc ctx meta data\n");
-               goto error_pasid;
+               goto error_fini;
        }
 
        ctx_data.meta_data_gpu_addr = AMDGPU_VA_RESERVED_SIZE;
@@ -1352,6 +1352,8 @@ error_vm:
        BUG_ON(amdgpu_bo_reserve(ctx_data.meta_data_obj, true));
        amdgpu_vm_bo_del(adev, ctx_data.meta_data_va);
        amdgpu_bo_unreserve(ctx_data.meta_data_obj);
+
+error_fini:
        amdgpu_vm_fini(adev, vm);
 
 error_pasid: