usb: xhci: replace goto with return when possible in handle_tx_event()
authorNiklas Neronin <niklas.neronin@linux.intel.com>
Mon, 29 Apr 2024 14:02:39 +0000 (17:02 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 1 May 2024 06:47:14 +0000 (08:47 +0200)
Simplifying the handle_tx_event() function by addressing the complexity
of its while loop. Replaces specific 'goto cleanup' statements with
'return' statements, applicable only where 'ep->skip' is set to 'false',
ensuring loop termination.

The original while loop, combined with 'goto cleanup', adds unnecessary
complexity. This change aims to untangle the loop's logic, facilitating a
more straightforward review of the upcoming comprehensive rework.

Signed-off-by: Niklas Neronin <niklas.neronin@linux.intel.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20240429140245.3955523-13-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci-ring.c

index e96ac2d7b9b13bac0f361b26c10deb3362314b61..0f48f9befc942a02a69782490431b6f1477eac45 100644 (file)
@@ -2804,7 +2804,7 @@ static int handle_tx_event(struct xhci_hcd *xhci,
                                xhci_handle_halted_endpoint(xhci, ep, NULL,
                                                            EP_HARD_RESET);
                        }
-                       goto cleanup;
+                       return 0;
                }
 
                /* We've skipped all the TDs on the ep ring when ep->skip set */
@@ -2812,7 +2812,7 @@ static int handle_tx_event(struct xhci_hcd *xhci,
                        ep->skip = false;
                        xhci_dbg(xhci, "All tds on the ep_ring skipped. Clear skip flag for slot %u ep %u.\n",
                                 slot_id, ep_index);
-                       goto cleanup;
+                       return 0;
                }
 
                td = list_first_entry(&ep_ring->td_list, struct xhci_td,
@@ -2851,7 +2851,7 @@ static int handle_tx_event(struct xhci_hcd *xhci,
                        if ((xhci->quirks & XHCI_SPURIOUS_SUCCESS) &&
                            ep_ring->last_td_was_short) {
                                ep_ring->last_td_was_short = false;
-                               goto cleanup;
+                               return 0;
                        }
 
                        /*