diff options
author | Alan Cox <alan@linux.intel.com> | 2010-02-18 11:44:01 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-03-02 17:55:12 -0500 |
commit | a108bfcb372d8c4452701039308fb95747911c59 (patch) | |
tree | 3528621937692e28081f71131cddc3130e2641ad /drivers/usb/serial/spcp8x5.c | |
parent | 2832fc11f1360668482beec06dbcd631ae5f0cf1 (diff) |
USB: tty: Prune uses of tty_request_room in the USB layer
We have lots of callers that do not need to do this in the first place.
Remove the calls as they both cost CPU and for big buffers can mess up the
multi-page allocation avoidance.
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/serial/spcp8x5.c')
-rw-r--r-- | drivers/usb/serial/spcp8x5.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/usb/serial/spcp8x5.c b/drivers/usb/serial/spcp8x5.c index 067e95ad2987..cf508e26f1c6 100644 --- a/drivers/usb/serial/spcp8x5.c +++ b/drivers/usb/serial/spcp8x5.c | |||
@@ -677,7 +677,6 @@ static void spcp8x5_read_bulk_callback(struct urb *urb) | |||
677 | struct tty_struct *tty; | 677 | struct tty_struct *tty; |
678 | unsigned char *data = urb->transfer_buffer; | 678 | unsigned char *data = urb->transfer_buffer; |
679 | unsigned long flags; | 679 | unsigned long flags; |
680 | int i; | ||
681 | int result = urb->status; | 680 | int result = urb->status; |
682 | u8 status; | 681 | u8 status; |
683 | char tty_flag; | 682 | char tty_flag; |
@@ -726,12 +725,11 @@ static void spcp8x5_read_bulk_callback(struct urb *urb) | |||
726 | 725 | ||
727 | tty = tty_port_tty_get(&port->port); | 726 | tty = tty_port_tty_get(&port->port); |
728 | if (tty && urb->actual_length) { | 727 | if (tty && urb->actual_length) { |
729 | tty_buffer_request_room(tty, urb->actual_length + 1); | ||
730 | /* overrun is special, not associated with a char */ | 728 | /* overrun is special, not associated with a char */ |
731 | if (status & UART_OVERRUN_ERROR) | 729 | if (status & UART_OVERRUN_ERROR) |
732 | tty_insert_flip_char(tty, 0, TTY_OVERRUN); | 730 | tty_insert_flip_char(tty, 0, TTY_OVERRUN); |
733 | for (i = 0; i < urb->actual_length; ++i) | 731 | tty_insert_flip_string_fixed_flag(tty, data, |
734 | tty_insert_flip_char(tty, data[i], tty_flag); | 732 | urb->actual_length, tty_flag); |
735 | tty_flip_buffer_push(tty); | 733 | tty_flip_buffer_push(tty); |
736 | } | 734 | } |
737 | tty_kref_put(tty); | 735 | tty_kref_put(tty); |