Re: [PATCHv5] usbnet: Resubmit interrupt URB once if halted
From: Paul Stewart <hidden>
Date: 2011-04-25 18:41:29
On Sat, Apr 23, 2011 at 11:36 PM, Oliver Neukum [off-list ref] wrote:
Am Freitag, 22. April 2011, 17:59:15 schrieb Paul Stewart:quoted
quoted
quoted
free_netdev(net); usb_put_dev (xdev); }@@ -1285,6 +1291,10 @@ int usbnet_suspend (struct usb_interface *intf, pm_message_t message)* wake the device */ netif_device_attach (dev->net); + + /* Stop interrupt URBs */ + if (dev->interrupt) + usb_kill_urb(dev->interrupt); } return 0; }There is a subtle question here: When is the best time to kill the interrupt URB? Without knowing any of the details, I'd guess that the interrupt URB reports asynchronous events and the driver could run into trouble if one of those events occurred while everything else was turned off. This suggests that the interrupt URB should be killed as soon as possible rather than as late as possible. But maybe it doesn't matter; it all depends on the design of the driver.I'm not sure I can answer this question either. As it stands, nobody was killing them before. Just trying to make it better.Hm. Are we looking at the same code?
Perhaps not. I'm working out of the netdev-2.6 git repository. Is this the wrong place?
usbnet_suspend now has: /* * accelerate emptying of the rx and queues, to avoid * having everything error out. */ netif_device_detach (dev->net); usbnet_terminate_urbs(dev); usb_kill_urb(dev->interrupt); This suggests that if you want to resubmit the interrupt URB in resume() you do it first. Which drivers use the interrupt URB?
The asix driver uses it fo signal link status.
Regards Oliver
-- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html