• David VomLehn's avatar
    USB: use kfifo to buffer usb-generic serial writes · 8e8dce06
    David VomLehn authored
    When do_output_char() attempts to write a carriage return/line feed sequence,
    it first checks to see how much buffer room is available. If there are at least
    two characters free, it will write the carriage return/line feed with two calls
    to tty_put_char(). It calls the tty_operation functions write() for devices that
    don't support the tty_operations function put_char(). If the USB generic serial
    device's write URB is not in use, it will return the buffer size when asked how
    much room is available. The write() of the carriage return will cause it to mark
    the write URB busy, so the subsequent write() of the line feed will be ignored.
    
    This patch uses the kfifo infrastructure to implement a write FIFO that
    accurately returns the amount of space available in the buffer.
    Signed-off-by: default avatarDavid VomLehn <dvomlehn@cisco.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    8e8dce06
usb-serial.c 37 KB