Hi Felipe, Felipe Balbi wrote: > Hi, > > Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx> writes: >> If a request is dequeued, the transfer is cancelled. Give back all >> the started requests. >> >> In most scenarios, the function driver dequeues all requests of a >> transfer when there's a failure. If the function driver follows this, >> then it's fine. If not, then we'd be skipping TRBs at different points >> within the dequeue and enqueue pointers, making dequeue/enqueue pointers >> useless. To enforce and make sure that we're properly skipping TRBs, >> cancel all the started requests and give back all the cancelled requests >> to the function drivers. > Which function driver is *not* cancelling transfers correctly? We can > (and should) be defensive on dwc3, but let's not hide bugs on function > drivers either. > I didn't review all the function drivers for this. I just see a potential issue and go for a more defensive approach. What's your suggestion? Thanks, Thinh