> > > if the urb resubmits itself by the completion handler, unlinking it may > > > fail. > ... > > > Who is buggy, the HCDs or the drivers ? > > > > Can't tell with what you've said so far. If the URB is unlinked > > and submitting it fails, then it's an obvious HCD bug. > > The submitting succeeds, which is the problem.
No, the problem is a driver that doesn't bother to synchronize its different threads/activities. > CPUA: entering handler - - resubmitting > CPUB: usb_unlink_urb() > > The driver assumes that after usb_unlink_urb() it could > safely free the URB, etc. > > You might argue that the driver is buggy, Yep. The driver clearly has two conflicting activities, yet does nothing to resolve its internal conflict. And likely didn't check for successful unlink status either. If the unlink failed (completion handler being called, but hasn't yet resubmitted), it's a clear driver bug. If the unlink succeeded (before or after handler call) it's also a clear driver bug: completion shouldn't have resubmitted after unlink. - Dave _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
