Re: [PATCH] usbnet: Activate halt interrupt endpoint before re-submit URB
From: Oliver Neukum <hidden>
Date: 2012-06-20 10:21:38
Am Mittwoch, 20. Juni 2012, 12:15:25 schrieb Ming Lei:
On Wed, Jun 20, 2012 at 4:58 PM, Oliver Neukum [off-list ref] wrote:quoted
Am Mittwoch, 20. Juni 2012, 10:07:55 schrieb Ming Lei:quoted
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.
quoted
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