Thread (1 message) 1 message, 1 author, 2012-02-20

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help