On Wed, May 19, 2021 at 10:48:29AM +0200, dave penkler wrote: > On Sat, 8 May 2021 at 16:29, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > > > > On Sat, May 08, 2021 at 10:14:41AM +0200, dave penkler wrote: > > > When the host driver detects a protocol error while processing an URB > > > it completes the URB with EPROTO status and marks the endpoint as > > > halted. > > > > Not true. It does not mark the endpoint as halted, not unless it > > receives a STALL handshake from the device. A STALL is not a protocol > > error. > > > > > When the class driver resubmits the URB and the if the host driver > > > finds the endpoint still marked as halted it should return EPIPE > > > status on the resubmitted URB > > > > Irrelevant. > Not at all. The point is that when an application is talking to an > instrument over the usbtmc driver, the underlying host controller and > its driver will detect and silence a babbling endpoint. No, they won't. That is, they will detect a babble error and return an error status, but they won't silence the endpoint. What makes you think they will? > Hence no EPROTO loop will ensue in this case and therefore no changes > are needed in usbtmc. Since this conclusion relies on the incorrect assumption above, it also is incorrect. Alan Stern