On 02/08/2024 12.21, Michał Pecio wrote: > Hi, > > This commit has now landed in 6.11-r1 and it appears to have a side > effect of performing the halted endpoint check after every handled > event, which wasn't done before. > >> + /* update the urb's actual_length and give back to the core */ >> + if (usb_endpoint_xfer_control(&td->urb->ep->desc)) >> + process_ctrl_td(xhci, ep, ep_ring, td, ep_trb, event); >> + else if (usb_endpoint_xfer_isoc(&td->urb->ep->desc)) >> + process_isoc_td(xhci, ep, ep_ring, td, ep_trb, event); >> + else >> + process_bulk_intr_td(xhci, ep, ep_ring, td, ep_trb, event); >> + >> +check_endpoint_halted: >> + if (xhci_halted_host_endpoint(ep_ctx, trb_comp_code)) >> + xhci_handle_halted_endpoint(xhci, ep, td, EP_HARD_RESET); >> >> return 0; > > Since stall handling is already present in functions like finish_td() or > process_bulk_intr_td() called from the above snippet, and this change of > behavior is not documented in the changelog, I doubt if it's intended? Hi, Thanks, this is indeed unintended. There definitely should be a return before the goto. Thanks, Niklas > > Regards, > Michal >