lkml.org 
[lkml]   [2010]   [Jan]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [REGRESSION] "USB: use kfifo to buffer usb-generic serial writes" causes gobi_loader to hang
    On Tue, Jan 19, 2010 at 02:20:29PM +0100, Oliver Neukum wrote:
    > 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.

    Did we ever determine if the patch below is needed or not?

    thanks,

    greg k-h

    > From d7317bae0772b794a1cc9b832bc3d3e1b3642a13 Mon Sep 17 00:00:00 2001
    > From: Oliver Neukum <oliver@neukum.org>
    > 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@neukum.org>
    > ---
    > 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
    >



    \
     
     \ /
      Last update: 2010-01-28 19:07    [W:0.029 / U:0.212 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site