It always sets DWC3_EP_END_TRANSFER_PENDING in dwc3_stop_active_transfer even if dwc3_send_gadget_ep_cmd fails. It can cause some problems like skipping clear stall commmand or giveback from dequeue. It could cause hung task if ENDTRANSFER command should not be completed. It seems like HW(Controller) issue but SW can prevent it. Daehwan Jung (2): usb: dwc3: Not set DWC3_EP_END_TRANSFER_PENDING in ep cmd fails usb: dwc3: Prevent cleanup cancelled requests at the same time. drivers/usb/dwc3/gadget.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) -- 2.31.1