From: Elina Pasheva Date: Tue, 12 May 2009 20:12:24 +0000 (-0700) Subject: USB: serial: sierra driver zero length packet fix X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=238ebd138c9704e1162030c1e600bc06142cb2c8;p=deliverable%2Flinux.git USB: serial: sierra driver zero length packet fix - Fixed a problem with transferring packets with size a multiple of Bulk Xfer size in function sierra_write(). Added transfer flag URB_ZERO_PACKET before submitting the urb to trigger Zero-length data transfer when packet size is a multiple of Bulk Xfer. Signed-off-by: Elina Pasheva Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c index f494c5f659e2..9d11fe47633b 100644 --- a/drivers/usb/serial/sierra.c +++ b/drivers/usb/serial/sierra.c @@ -17,7 +17,7 @@ Whom based his on the Keyspan driver by Hugh Blemings */ -#define DRIVER_VERSION "v.1.3.6" +#define DRIVER_VERSION "v.1.3.7" #define DRIVER_AUTHOR "Kevin Lloyd, Elina Pasheva, Matthew Safar, Rory Filer" #define DRIVER_DESC "USB Driver for Sierra Wireless USB modems" @@ -474,6 +474,9 @@ static int sierra_write(struct tty_struct *tty, struct usb_serial_port *port, port->bulk_out_endpointAddress), buffer, writesize, sierra_outdat_callback, port); + /* Handle the need to send a zero length packet */ + urb->transfer_flags |= URB_ZERO_PACKET; + /* send it down the pipe */ retval = usb_submit_urb(urb, GFP_ATOMIC); if (retval) {