winsys/amdgpu: remove label bo_list_error
authorMarek Olšák <marek.olsak@amd.com>
Thu, 12 Jul 2018 03:21:16 +0000 (23:21 -0400)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 16 Jul 2018 17:32:33 +0000 (13:32 -0400)
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
src/gallium/winsys/amdgpu/drm/amdgpu_cs.c

index 77b372d2cea7c141dff0bc7fa1634bc7f3deab8e..1aaa066731090de06e201c6ed4cba3fc4347c92e 100644 (file)
@@ -1318,12 +1318,20 @@ void amdgpu_cs_submit_ib(void *job, int thread_index)
                                 handles, NULL, &bo_list);
       free(handles);
       simple_mtx_unlock(&ws->global_bo_list_lock);
+      if (r) {
+         fprintf(stderr, "amdgpu: buffer list creation failed (%d)\n", r);
+         amdgpu_fence_signalled(cs->fence);
+         cs->error_code = r;
+         goto cleanup;
+      }
    } else {
       unsigned num_handles;
 
       if (!amdgpu_add_sparse_backing_buffers(cs)) {
-         r = -ENOMEM;
-         goto bo_list_error;
+         fprintf(stderr, "amdgpu: amdgpu_add_sparse_backing_buffers failed\n");
+         amdgpu_fence_signalled(cs->fence);
+         cs->error_code = -ENOMEM;
+         goto cleanup;
       }
 
       amdgpu_bo_handle *handles = alloca(sizeof(*handles) * cs->num_real_buffers);
@@ -1346,18 +1354,14 @@ void amdgpu_cs_submit_ib(void *job, int thread_index)
       if (num_handles) {
          r = amdgpu_bo_list_create(ws->dev, num_handles,
                                    handles, flags, &bo_list);
-      } else {
-         r = 0;
+         if (r) {
+            fprintf(stderr, "amdgpu: buffer list creation failed (%d)\n", r);
+            amdgpu_fence_signalled(cs->fence);
+            cs->error_code = r;
+            goto cleanup;
+         }
       }
    }
-bo_list_error:
-
-   if (r) {
-      fprintf(stderr, "amdgpu: buffer list creation failed (%d)\n", r);
-      amdgpu_fence_signalled(cs->fence);
-      cs->error_code = r;
-      goto cleanup;
-   }
 
    if (acs->ring_type == RING_GFX)
       ws->gfx_bo_list_counter += cs->num_real_buffers;