From 238ebd138c9704e1162030c1e600bc06142cb2c8 Mon Sep 17 00:00:00 2001 From: Elina Pasheva Date: Tue, 12 May 2009 13:12:24 -0700 Subject: [PATCH] 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 --- drivers/usb/serial/sierra.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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) { -- 2.39.5