Am Mittwoch, 20. Juni 2012, 12:15:25 schrieb Ming Lei: > On Wed, Jun 20, 2012 at 4:58 PM, Oliver Neukum <oneukum@xxxxxxx> wrote: > > Am Mittwoch, 20. Juni 2012, 10:07:55 schrieb Ming Lei: > >> BTW, maybe it is better to add below > >> > >> usbnet_defer_kevent(dev, EVENT_STS_HALT); > >> > >> for -EPIPE returned from usb_urb_submit if it will be resent. > > > > Why? If it failed once it'll probably also fail the next time. > > -EPIPE just means the endpoint is halted, either from usb_urb_submit > or urb->status, so the HALT should be cleared in the situation. It probably was halted and cleared. However that you cleared a halt doesn't mean that the reason for stalling went away. So you must cope with an endpoint being halted again right after it was cleared. > > In that case we'd need to do something more intrusive > > like resetting the device, but that cannot be done well > > in the generic usbnet part. > > IMO, resetting is not needed for -EPIPE, but may be needed for > -EPROTO failure. We don't need it for a single failure, but what else would we do if we keep getting -EPIPE? Regards Oliver -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html