From: Daniel Drake <dsd@ge...> - 2006-06-16 22:29:26
Some comments on r79:
1. In recent kernels, all urbs are guaranteed to be killed before
disconnect() is invoked. This change was made to remove the number of
races like this. The only danger is of urbs which might resubmit
themselves in their callback handler (they must handle kill gracefully).
2. I don't think the change to transfer_flags is correct, this should
only be changed before the urb is submitted. Surely it's ok to kill an
urb which was enabled for async unlink anyway? Of course, the
asynchronous unlink flag was removed in recent kernels - all urbs are
asynchronously killable, so maybe this point is moot.
On Fri, 16 Jun 2006, Daniel Drake wrote:
> 1. In recent kernels, all urbs are guaranteed to be killed before
> disconnect() is invoked.
The old driver is not only for recent kernels. The change fixes a bug that
shows on 2.4.x kernels.
> 2. I don't think the change to transfer_flags is correct, this should
> only be changed before the urb is submitted.
If problems show with other kernels I'll add an ifdef around the change.
Thanks for feedback :-).