On Wed, Jan 16, 2019 at 7:37 PM He, Bo <bo.he@xxxxxxxxx> wrote: > > Hi, Green: > if you check the latest kernel, you can see the below 3 patches introduce the cancelled_list feature can fix the issue: > > commit fec9095bdef4e7c988adb603d0d4f92ee735d4a1 > Author: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> > Date: Wed Aug 1 13:56:50 2018 +0300 > > usb: dwc3: gadget: remove wait_end_transfer > > Now that we have a list of cancelled requests, we can skip over TRBs > when END_TRANSFER command completes. > > Signed-off-by: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> > > commit d4f1afe5e896c18ae01099a85dab5e1a198bd2a8 > Author: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> > Date: Wed Aug 1 13:54:25 2018 +0300 > > usb: dwc3: gadget: move requests to cancelled_list > > Whenever we have a request in flight, we can move it to the cancelled > list and later simply iterate over that list and skip over any TRBs we > find. > > Signed-off-by: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> > > commit d5443bbf5fc8f8389cce146b1fc2987cdd229d12 > Author: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> > Date: Wed Aug 1 13:53:29 2018 +0300 > > usb: dwc3: gadget: introduce cancelled_list > > This list will host cancelled requests who still have TRBs being > processed. > > Signed-off-by: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> > Oh, excellent. I'll check those out. Thanks! -Evan