On Tue, Jun 19, 2012 at 09:54:48AM +0200, Gerd Hoffmann wrote: > This reverts commit e4d8318a85779b25b880187b1b1c44e797bd7d4b. > > This patch makes uas.c call usb_unlink_urb on data urbs. The data urbs > get freed in the completion callback. This is illegal according to the > usb_unlink_urb documentation. > > This patch also makes the code expect the data completion callback > being called before the status completion callback. This isn't > guaranteed to be the case, even though the actual data transfer should > be finished by the time the status is received. > > Background: The ehci irq handler for example only know that there are > finished transfers, it then has go check the QHs & TDs to see which > transfers did actually finish. It has no way to figure in which order > the transfers did complete. The xhci driver can call the callbacks in > completion order thanks to the event queue. This does nicely explain > why the driver is solid on a (usb2) xhci port whereas it goes crazy on > ehci in my testing. > > Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> > --- Should this revert also go into 3.4-stable so that the device will work properly on ehci? thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html