drm/amdkfd: Fix goto usage
authorFelix Kuehling <Felix.Kuehling@amd.com>
Tue, 10 Apr 2018 21:33:11 +0000 (17:33 -0400)
committerOded Gabbay <oded.gabbay@gmail.com>
Tue, 10 Apr 2018 21:33:11 +0000 (17:33 -0400)
Missed a spot in previous cleanup commit:
Remove gotos that do not feature any common cleanup, and use gotos
instead of repeating cleanup commands.

According to kernel.org: "The goto statement comes in handy when a
function exits from multiple locations and some common work such as
cleanup has to be done. If there is no cleanup needed then just return
directly."

Signed-off-by: Kent Russell <kent.russell@amd.com>
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com>
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c

index 69f4964853310ef93a8063dd984a3d58e7998788..23e586b0507ccba9dd20a8c6cd9d0d78973f01fb 100644 (file)
@@ -232,18 +232,16 @@ static int acquire_packet_buffer(struct kernel_queue *kq,
                 * make sure calling functions know
                 * acquire_packet_buffer() failed
                 */
-               *buffer_ptr = NULL;
-               return -ENOMEM;
+               goto err_no_space;
        }
 
        if (wptr + packet_size_in_dwords >= queue_size_dwords) {
                /* make sure after rolling back to position 0, there is
                 * still enough space.
                 */
-               if (packet_size_in_dwords >= rptr) {
-                       *buffer_ptr = NULL;
-                       return -ENOMEM;
-               }
+               if (packet_size_in_dwords >= rptr)
+                       goto err_no_space;
+
                /* fill nops, roll back and start at position 0 */
                while (wptr > 0) {
                        queue_address[wptr] = kq->nop_packet;
@@ -255,6 +253,10 @@ static int acquire_packet_buffer(struct kernel_queue *kq,
        kq->pending_wptr = wptr + packet_size_in_dwords;
 
        return 0;
+
+err_no_space:
+       *buffer_ptr = NULL;
+       return -ENOMEM;
 }
 
 static void submit_packet(struct kernel_queue *kq)