Oliver Neukum wrote:
retval = hcd->driver->urb_dequeue (hcd, urb);
/* hcds shouldn't really fail these calls, but... */
if (retval) {
...
}
is deeply racy. It can change the context under a running completion handler.
I'd suggest that you declare urb_dequeue void and remove it.
Maybe you should make that "dev_warn" and see how often it happens
before you get too worried. Synchronous unlinks aren't as common
as all that.
The "but" is: "but they do, so let's cope somehow". You're welcome
to try fixing the rest of the problem(s) in unlink paths; there are
fewer in 2.5 than 2.4, but there's room for improvement.
- Dave
-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel