lkml.org 
[lkml]   [2010]   [Jan]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[tip:urgent] fix USB serial fix kfifo_len locking
    From
    Date
    This patch fix a possible race bug in drivers/usb/serial/generic with
    the new kfifo API.

    Please apply it to the 2.6.33-rc* tree.

    Signed-off-by: Stefani Seibold <stefani@seibold.net>
    ---
    generic.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    --- linux-2.6.33-rc2.orig/drivers/usb/serial/generic.c 2009-12-27 23:37:03.566060210 +0100
    +++ linux-2.6.33-rc2.new/drivers/usb/serial/generic.c 2010-01-04 20:15:38.023351711 +0100
    @@ -386,12 +386,12 @@ int usb_serial_generic_chars_in_buffer(s

    dbg("%s - port %d", __func__, port->number);

    - if (serial->type->max_in_flight_urbs) {
    - spin_lock_irqsave(&port->lock, flags);
    + spin_lock_irqsave(&port->lock, flags);
    + if (serial->type->max_in_flight_urbs)
    chars = port->tx_bytes_flight;
    - spin_unlock_irqrestore(&port->lock, flags);
    - } else if (serial->num_bulk_out)
    + else if (serial->num_bulk_out)
    chars = kfifo_len(&port->write_fifo);
    + spin_unlock_irqrestore(&port->lock, flags);

    dbg("%s - returns %d", __func__, chars);
    return chars;



    \
     
     \ /
      Last update: 2010-01-05 14:33    [W:0.020 / U:0.124 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site