]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
usb: xhci: fix duplicate stall handling in handle_tx_event()
authorNiklas Neronin <niklas.neronin@linux.intel.com>
Fri, 9 Aug 2024 12:44:08 +0000 (15:44 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Aug 2024 08:26:28 +0000 (10:26 +0200)
Stall handling is managed in the 'process_*' functions, which are called
right before the 'goto' stall handling code snippet. Thus, there should
be a return after the 'process_*' functions. Otherwise, the stall code may
run twice.

Fixes: 1b349f214ac7 ("usb: xhci: add 'goto' for halted endpoint check in handle_tx_event()")
Reported-by: Michal Pecio <michal.pecio@gmail.com>
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/20240809124408.505786-3-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci-ring.c

index b7517c3c8059f4afb00e270bcbb288a67fdcffab..4ea2c3e072a9e3d6f77e48f6154c3a3f9bb9a848 100644 (file)
@@ -2910,6 +2910,7 @@ static int handle_tx_event(struct xhci_hcd *xhci,
                process_isoc_td(xhci, ep, ep_ring, td, ep_trb, event);
        else
                process_bulk_intr_td(xhci, ep, ep_ring, td, ep_trb, event);
+       return 0;
 
 check_endpoint_halted:
        if (xhci_halted_host_endpoint(ep_ctx, trb_comp_code))