When skipping to the last TD of an URB, go to the _last_ entry in the
list instead of the _first_ entry (as780).  This fixes Bugzilla #6747 and 
possibly others.

Signed-off-by: Alan Stern <[EMAIL PROTECTED]>

---

I'm submitting this for both 2.6.17.stable and 2.6.18, late though it is.  
The same patch will apply to both trees (albeit with some offset).

Duncan, you'll probably find it also fixes the remaining problem you 
found with the usbatm driver.  It's closely associated with the earlier 
bugfix; they both are involved with cleaning up after a short packet is 
received.

Index: usb-2.6/drivers/usb/host/uhci-q.c
===================================================================
--- usb-2.6.orig/drivers/usb/host/uhci-q.c
+++ usb-2.6/drivers/usb/host/uhci-q.c
@@ -372,7 +372,7 @@ static void uhci_fixup_toggles(struct uh
                 * need to change any toggles in this URB */
                td = list_entry(urbp->td_list.next, struct uhci_td, list);
                if (toggle > 1 || uhci_toggle(td_token(td)) == toggle) {
-                       td = list_entry(urbp->td_list.next, struct uhci_td,
+                       td = list_entry(urbp->td_list.prev, struct uhci_td,
                                        list);
                        toggle = uhci_toggle(td_token(td)) ^ 1;
 


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to