The active flag in a TD needs to be checked to determine whether or not
the TD was processed in the frame.  Without this check, the HCD assumes
the TD completed successfully, when in reality it was not processed at all.

Signed-off-by: Grant Likely <[EMAIL PROTECTED]>
---
 drivers/usb/c67x00/c67x00-sched.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/c67x00/c67x00-sched.c 
b/drivers/usb/c67x00/c67x00-sched.c
index 84b40a4..952bdab 100644
--- a/drivers/usb/c67x00/c67x00-sched.c
+++ b/drivers/usb/c67x00/c67x00-sched.c
@@ -1020,8 +1020,8 @@ static void check_td_list(struct c67x00_hcd *c67x00, 
struct pt_regs *regs)
                        goto cont;
                }
 
-               if ((td->status & TD_STATUSMASK_NAK) || !td_sequence_ok(td) ||
-                   !td_acked(td))
+               if ((td->status & TD_STATUSMASK_NAK) ||
+                   !td_sequence_ok(td) || !td_acked(td) || td_active(td))
                        goto cont;
 
                /* Sequence ok and acked, don't need to fix toggle */
-- 
1.4.4.2


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
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