commit 5475187c2752adcc6d789592b5f68c81c39e5a81
Author: Misha Zhilin <[EMAIL PROTECTED]>
Date:   Wed Mar 5 00:50:27 2008 +0000

    USB: ehci: handle large bulk URBs correctly (again)
    
    commit: b5f7a0ec11694e60c99d682549dfaf8a03d7ad97
    
    USB: ehci: Fixes completion for multi-qtd URB the short read case
    
    When use of urb->status in the EHCI driver was reworked last August
    (commit 14c04c0f88f228fee1f412be91d6edcb935c78aa), a bug was inserted
    in the handling of early completion for bulk transactions that need
    more than one qTD (e.g. more than 20KB in one URB).
    
    This patch resolves that problem by ensuring that the early completion
    status is preserved until the URB is handed back to its submitter,
    instead of resetting it after each qTD.
    
    Signed-off-by: Misha Zhilin <[EMAIL PROTECTED]>
    Signed-off-by: David Brownell <[EMAIL PROTECTED]>
    Acked-by: Alan Stern <[EMAIL PROTECTED]>
    Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
    Signed-off-by: Chris Wright <[EMAIL PROTECTED]>

diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c
index b10f39c..d1df9e9 100644
--- a/drivers/usb/host/ehci-q.c
+++ b/drivers/usb/host/ehci-q.c
@@ -315,10 +315,10 @@ qh_completions (struct ehci_hcd *ehci, struct ehci_qh *qh)
                        if (likely (last->urb != urb)) {
                                ehci_urb_done(ehci, last->urb, last_status);
                                count++;
+                               last_status = -EINPROGRESS;
                        }
                        ehci_qtd_free (ehci, last);
                        last = NULL;
-                       last_status = -EINPROGRESS;
                }
 
                /* ignore urbs submitted during completions we reported */
_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs

Reply via email to