On Monday 31 December 2007, David Brownell wrote: > The "complete sooner" fix seems straightforward,
... and FWIW should reduce the number of EL2NSYNC faults that get reported, by removing an source of delays in URB completion. Such delays cause those faults to be returned in cases where they are correct, but not expected. > but mixing in > the other mechanism (complex workaround for VIA bug) caused a > lot of complication... And FWIW I think a simpler way to address that workaround would be to change the control flow of [s]itd_complete() from collect status recycle [s]itd unless URB still has transfers return 0 urb is done() return 1 to something more like this (structured to avoid code re-indenting): retcode = 0 collect status unless URB still has transfers goto done urb is done() retcode = 1 done: recycle [s]itd return retcode I don't see a real need to split out a separate scan() routine, and so forth ... if the core issue is that some controllers mark (s)itds completed before they're actually done using them (e.g. they cache "old" dma descriptors, or pointers to them, until end-of-frame), then deferred recycling is enough to make sure that can't happen. - Dave - To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html