Hi, Michael Grzeschik writes: > dwc3_gadget_ep_disable gets called before the last request gets > dequeued. > > In __dwc3_gadget_ep_disable all started, pending and cancelled > lists for this endpoint will call dwc3_gadget_giveback in > dwc3_remove_requests. > > After that no list containing the afterwards dequed request, > therefor it is not necessary to run the dequeue routine. > > Signed-off-by: Michael Grzeschik > --- > @Lars-Peter Clausen: > > This patch addresses the case that not queued requests get dequeued. > The only case that this happens seems on disabling the gadget. > > drivers/usb/dwc3/gadget.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c > index 9a6f741d1db0dc..5d4fa8d6c93e49 100644 > --- a/drivers/usb/dwc3/gadget.c > +++ b/drivers/usb/dwc3/gadget.c > @@ -1609,6 +1609,9 @@ static int dwc3_gadget_ep_dequeue(struct usb_ep *ep, > > trace_dwc3_ep_dequeue(req); > > + if (!(dep->flags & DWC3_EP_ENABLED)) > + return 0; which driver is trying to call dequeue after the endpoint is disabled? Got some tracepoints of the problem happening? -- balbi