Am Montag, 18. Januar 2010 21:14:16 schrieb Matthew Garrett: > drivers/usb/serial/generic.c: usb_serial_generic_write - port 0, 1565 > bytes > drivers/usb/serial/generic.c: usb_serial_generic_write - put 0 bytes > into fifo > drivers/usb/serial/generic.c: usb_serial_generic_read_bulk_callback - > port 0 If the FIFO is full we can do nothing. Please try the attached patch. Regards Oliver
From d7317bae0772b794a1cc9b832bc3d3e1b3642a13 Mon Sep 17 00:00:00 2001 From: Oliver Neukum <oliver@xxxxxxxxxx> Date: Tue, 19 Jan 2010 14:16:41 +0100 Subject: [PATCH] usb:serial:Deal with filled FIFO Bail out if the FIFO is filled Signed-off-by: Oliver Neukum <oliver@xxxxxxxxxx> --- drivers/usb/serial/generic.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/drivers/usb/serial/generic.c b/drivers/usb/serial/generic.c index 76e5514..053f7f1 100644 --- a/drivers/usb/serial/generic.c +++ b/drivers/usb/serial/generic.c @@ -349,6 +349,10 @@ int usb_serial_generic_write(struct tty_struct *tty, count = kfifo_in_locked(&port->write_fifo, buf, count, &port->lock); dbg("%s - put %d bytes into fifo", __func__, count); + if (!count) { + dbg("%s - FIFO is full", __func__); + return 0; + } result = usb_serial_generic_write_start(port); if (result >= 0) -- 1.6.4.2