Sorry for the messing "RE: Re: ....". One should be enough. Next mails I'll send from my private account again, since I can't change the company rules. This thread continues from my last mail. Alan, please see below and add other recipient if required. > > > Otherwise I see only the other approach to change hundred drivers > > > and add the cases EPROTO, EILSEQ and ETIME in each callback handler. > > > The usbtmc driver already respects the EILSEQ and ETIME, and only > > > EPROTO is missing. > > > The rest should be more a management task. > > > BTW do you assume it is only a problem for INT pipes or is it also a > > > problem for isochronous and bulk transfers? > > > > All of them. Control too. > > > > > > Will you be able to test patches? > > > > > > I only can test the USBTMC function in some different PCs. I do not > > > have automated regression tests for USB drivers or Linux kernels. > > > Maybe there is company who could do that. > > > > Well then, if I do find time to write a patch, I'll ask you to try it > > out with the usbtmc driver. > > You mean that you will do a patch in urb.c or a host driver? Or just add a line in > usbtmc.c? > Anyhow there is no hurry. On May 20 I will send you a mail if I'm able to provoke one > of these hardware errors EPROTO, EILSQ, or ETIME. Otherwise it doesn't make > sense to test it. > > -Guido I've tested to pull the cable and I can easy produce the -EPROTO (-71) error in the usbtmc.c driver. The error also happens when I have no traffic and just switch off the USBTMC device (which I can do from home office). When there is traffic, the IN/OUT pipe will also show some -EPROTO errors from the flying urbs. On my test PC the amount of error messages vary from 1 to ca. 10 error message issued by the INT pipe (see below). Nevertheless I do not see the endless loop, since the USB disconnect stops the loop. (Tested with USB 2.0, older kernel 4.15, but latest modified usbtmc.c driver using ehci-pci) So I can test fixes (of course with latest kernel) and also setup a machine with USB 3.0. 1. Example [1616527.017863] usbtmc 1-1.4:1.0: usbtmc_write_bulk_cb - nonzero write bulk status received: -71 [1616527.032489] usbtmc 1-1.4:1.0: unknown status received: -71 [1616527.053998] usbtmc 1-1.4:1.0: unknown status received: -71 [1616527.076145] usbtmc 1-1.4:1.0: unknown status received: -71 [1616527.098143] usbtmc 1-1.4:1.0: unknown status received: -71 [1616527.120244] usbtmc 1-1.4:1.0: unknown status received: -71 [1616527.142244] usbtmc 1-1.4:1.0: unknown status received: -71 [1616527.164440] usbtmc 1-1.4:1.0: unknown status received: -71 [1616527.186517] usbtmc 1-1.4:1.0: unknown status received: -71 [1616527.208175] usbtmc 1-1.4:1.0: unknown status received: -71 [1616527.230272] usbtmc 1-1.4:1.0: unknown status received: -71 [1616527.241982] usb 1-1.4: USB disconnect, device number 3 2. Example [1622454.299131] usbtmc 1-1.4:1.0: unknown status received: -71 [1622454.305815] usbtmc 1-1.4:1.0: usbtmc_write_bulk_cb - nonzero write bulk status received: -71 [1622454.309921] usbtmc 1-1.4:1.0: usbtmc_read_bulk_cb - nonzero read bulk status received: -71 [1622454.319121] usbtmc 1-1.4:1.0: unknown status received: -71 [1622454.341199] usbtmc 1-1.4:1.0: unknown status received: -71 [1622454.363336] usbtmc 1-1.4:1.0: unknown status received: -71 [1622454.385466] usbtmc 1-1.4:1.0: unknown status received: -71 [1622454.407576] usbtmc 1-1.4:1.0: unknown status received: -71 [1622454.422870] usb 1-1.4: USB disconnect, device number 7 3. Example [1623429.713784] usbtmc 1-1.4:1.0: usbtmc_read_bulk_cb - nonzero read bulk status received: -71 [1623429.714037] usbtmc 1-1.4:1.0: usbtmc_read_bulk_cb - nonzero read bulk status received: -2 [1623429.714279] usbtmc 1-1.4:1.0: usbtmc_read_bulk_cb - nonzero read bulk status received: -2 [1623429.714528] usbtmc 1-1.4:1.0: usbtmc_read_bulk_cb - nonzero read bulk status received: -2 [1623429.714778] usbtmc 1-1.4:1.0: usbtmc_read_bulk_cb - nonzero read bulk status received: -2 [1623429.715029] usbtmc 1-1.4:1.0: usbtmc_read_bulk_cb - nonzero read bulk status received: -2 [1623429.715278] usbtmc 1-1.4:1.0: usbtmc_read_bulk_cb - nonzero read bulk status received: -2 [1623429.715528] usbtmc 1-1.4:1.0: usbtmc_read_bulk_cb - nonzero read bulk status received: -2 [1623429.715777] usbtmc 1-1.4:1.0: usbtmc_read_bulk_cb - nonzero read bulk status received: -2 [1623429.716028] usbtmc 1-1.4:1.0: usbtmc_read_bulk_cb - nonzero read bulk status received: -2 [1623429.716277] usbtmc 1-1.4:1.0: usbtmc_read_bulk_cb - nonzero read bulk status received: -2 [1623429.718916] usbtmc 1-1.4:1.0: usbtmc_read_bulk_cb - nonzero read bulk status received: -2 [1623429.719168] usbtmc 1-1.4:1.0: usbtmc_read_bulk_cb - nonzero read bulk status received: -2 [1623429.722404] usbtmc 1-1.4:1.0: usbtmc_read_bulk_cb - nonzero read bulk status received: -2 [1623429.725666] usbtmc 1-1.4:1.0: usbtmc_read_bulk_cb - nonzero read bulk status received: -2 [1623429.725918] usbtmc 1-1.4:1.0: usbtmc_read_bulk_cb - nonzero read bulk status received: -2 [1623429.727837] usbtmc 1-1.4:1.0: unknown status received: -71 [1623429.749949] usbtmc 1-1.4:1.0: unknown status received: -71 [1623429.772094] usbtmc 1-1.4:1.0: unknown status received: -71 [1623429.794184] usbtmc 1-1.4:1.0: unknown status received: -71 [1623429.816297] usbtmc 1-1.4:1.0: unknown status received: -71 [1623429.838479] usbtmc 1-1.4:1.0: unknown status received: -71 [1623429.838795] usb 1-1.4: USB disconnect, device number 8