Re: [PATCH] net/usbnet: avoid recursive locking in usbnet_stop()
From: Alan Stern <hidden>
Date: 2012-02-20 21:40:49
On Mon, 20 Feb 2012, Sebastian Andrzej Siewior wrote:
quoted
What's the issue here? If a driver calls usb_unlink_urb() while holding a lock, and the completion routine tries to acquire the same lock, then deadlock is possible. The fact that usb_unlink_urb() is asynchronous is not a guarantee of anything; the HCD is allowed to call the completion handler from within usb_unlink_urb(). It's true that the kerneldoc for usb_unlink_urb() says "This request is always asynchronous". It might be a good idea to remove the word "always", because it seems to give people the wrong idea.I see. So you approve that patch and suggest to remove the "always" wording plus adding something like "the hcd might call complete routine during unlink" ?
Well, I haven't read the patch and don't really understand what issue it tries to solve. But if that issue is the one I talked about above then yes, it makes sense. And changing the documentation as you suggest would be a good thing to do in any case. Alan Stern -- 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