Commit:     5adceac5da3d353dd1318d0482cab94a79472adf
Parent:     b5b80f2b20c833f979060cf48ae3ee6fbfa552be
Author:     Oliver Neukum <[EMAIL PROTECTED]>
AuthorDate: Fri Aug 17 14:01:38 2007 +0200
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Fri Oct 12 14:55:25 2007 -0700

    USB: fix errornous assumption in the usb serial framework revealed by 
    the iuu_phoenix driver submits another URB from a completion handler.
    This dictates a certain order of calls to usb_kill_urb() in kill_traffic().
    As other drivers may do it the other way round, we need to use both
    orders in kill_traffic().
    This patch does so and should be merged before iuu_phoenix is merged.
    Signed-off-by: Oliver Neukum <[EMAIL PROTECTED]>
    Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
 drivers/usb/serial/usb-serial.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c
index 9bf01a5..26e015c 100644
--- a/drivers/usb/serial/usb-serial.c
+++ b/drivers/usb/serial/usb-serial.c
@@ -578,6 +578,17 @@ static void kill_traffic(struct usb_serial_port *port)
+       /*
+        * This is tricky.
+        * Some drivers submit the read_urb in the
+        * handler for the write_urb or vice versa
+        * this order determines the order in which
+        * usb_kill_urb() must be used to reliably
+        * kill the URBs. As it is unknown here,
+        * both orders must be used in turn.
+        * The call below is not redundant.
+        */
+       usb_kill_urb(port->read_urb);
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to