Hi again, Here's an updated version with the following modifications - Use lock versions of test_and_set_bit and clear_bit for USB_SERIAL_WRITE_BUSY. - Make sure USB_SERIAL_WRITE_BUSY is cleared under the port lock if there are no urbs free or no data in fifo. There is a theoretical possibility of receiving two interrupts after checking for free urbs and fifo data but before clearing the flag, so this must be done atomically. - Make sure ftdi_sio_close calls generic close to kill write urbs and clear fifo. - Implement usb_serial_generic_resume. Thanks, Johan Johan Hovold (2): USB: serial: reimplement generic fifo-based writes USB: serial: remove multi-urb write from generic driver drivers/usb/serial/aircable.c | 9 +- drivers/usb/serial/ftdi_sio.c | 60 ++++-------- drivers/usb/serial/generic.c | 193 +++++++++++---------------------------- drivers/usb/serial/usb-serial.c | 33 +++++++ include/linux/usb/serial.h | 16 ++- 5 files changed, 122 insertions(+), 189 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html