aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/usb
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-02-21 16:41:04 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-02-21 16:41:04 -0500
commit21eaab6d19ed43e82ed39c8deb7f192134fb4a0e (patch)
treed995205afdcb7f47462bcd28067dc0c4ab0b7b02 /drivers/net/usb
parent74e1a2a39355b2d3ae8c60c78d8add162c6d7183 (diff)
parent9e17df37d710f8998e9cb10a548304fe33d4a5c2 (diff)
Merge tag 'tty-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Pull tty/serial patches from Greg Kroah-Hartman: "Here's the big tty/serial driver patches for 3.9-rc1. More tty port rework and fixes from Jiri here, as well as lots of individual serial driver updates and fixes. All of these have been in the linux-next tree for a while." * tag 'tty-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (140 commits) tty: mxser: improve error handling in mxser_probe() and mxser_module_init() serial: imx: fix uninitialized variable warning serial: tegra: assume CONFIG_OF TTY: do not update atime/mtime on read/write lguest: select CONFIG_TTY to build properly. ARM defconfigs: add missing inclusions of linux/platform_device.h fb/exynos: include platform_device.h ARM: sa1100/assabet: include platform_device.h directly serial: imx: Fix recursive locking bug pps: Fix build breakage from decoupling pps from tty tty: Remove ancient hardpps() pps: Additional cleanups in uart_handle_dcd_change pps: Move timestamp read into PPS code proper pps: Don't crash the machine when exiting will do pps: Fix a use-after free bug when unregistering a source. pps: Use pps_lookup_dev to reduce ldisc coupling pps: Add pps_lookup_dev() function tty: serial: uartlite: Support uartlite on big and little endian systems tty: serial: uartlite: Fix sparse and checkpatch warnings serial/arc-uart: Miscll DT related updates (Grant's review comments) ... Fix up trivial conflicts, mostly just due to the TTY config option clashing with the EXPERIMENTAL removal.
Diffstat (limited to 'drivers/net/usb')
-rw-r--r--drivers/net/usb/Kconfig4
-rw-r--r--drivers/net/usb/hso.c32
2 files changed, 17 insertions, 19 deletions
diff --git a/drivers/net/usb/Kconfig b/drivers/net/usb/Kconfig
index 3a44a5d7bf9e..da92ed3797aa 100644
--- a/drivers/net/usb/Kconfig
+++ b/drivers/net/usb/Kconfig
@@ -443,7 +443,7 @@ config USB_NET_QMI_WWAN
443 443
444config USB_HSO 444config USB_HSO
445 tristate "Option USB High Speed Mobile Devices" 445 tristate "Option USB High Speed Mobile Devices"
446 depends on USB && RFKILL 446 depends on USB && RFKILL && TTY
447 default n 447 default n
448 help 448 help
449 Choose this option if you have an Option HSDPA/HSUPA card. 449 Choose this option if you have an Option HSDPA/HSUPA card.
@@ -491,7 +491,7 @@ config USB_SIERRA_NET
491 491
492config USB_VL600 492config USB_VL600
493 tristate "LG VL600 modem dongle" 493 tristate "LG VL600 modem dongle"
494 depends on USB_NET_CDCETHER 494 depends on USB_NET_CDCETHER && TTY
495 select USB_ACM 495 select USB_ACM
496 help 496 help
497 Select this if you want to use an LG Electronics 4G/LTE usb modem 497 Select this if you want to use an LG Electronics 4G/LTE usb modem
diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
index 41e5dfb5ee64..e2dd3249b6bd 100644
--- a/drivers/net/usb/hso.c
+++ b/drivers/net/usb/hso.c
@@ -2035,25 +2035,23 @@ static int put_rxbuf_data(struct urb *urb, struct hso_serial *serial)
2035 tty = tty_port_tty_get(&serial->port); 2035 tty = tty_port_tty_get(&serial->port);
2036 2036
2037 /* Push data to tty */ 2037 /* Push data to tty */
2038 if (tty) { 2038 write_length_remaining = urb->actual_length -
2039 write_length_remaining = urb->actual_length - 2039 serial->curr_rx_urb_offset;
2040 serial->curr_rx_urb_offset; 2040 D1("data to push to tty");
2041 D1("data to push to tty"); 2041 while (write_length_remaining) {
2042 while (write_length_remaining) { 2042 if (tty && test_bit(TTY_THROTTLED, &tty->flags)) {
2043 if (test_bit(TTY_THROTTLED, &tty->flags)) { 2043 tty_kref_put(tty);
2044 tty_kref_put(tty); 2044 return -1;
2045 return -1;
2046 }
2047 curr_write_len = tty_insert_flip_string
2048 (tty, urb->transfer_buffer +
2049 serial->curr_rx_urb_offset,
2050 write_length_remaining);
2051 serial->curr_rx_urb_offset += curr_write_len;
2052 write_length_remaining -= curr_write_len;
2053 tty_flip_buffer_push(tty);
2054 } 2045 }
2055 tty_kref_put(tty); 2046 curr_write_len = tty_insert_flip_string(&serial->port,
2047 urb->transfer_buffer + serial->curr_rx_urb_offset,
2048 write_length_remaining);
2049 serial->curr_rx_urb_offset += curr_write_len;
2050 write_length_remaining -= curr_write_len;
2051 tty_flip_buffer_push(&serial->port);
2056 } 2052 }
2053 tty_kref_put(tty);
2054
2057 if (write_length_remaining == 0) { 2055 if (write_length_remaining == 0) {
2058 serial->curr_rx_urb_offset = 0; 2056 serial->curr_rx_urb_offset = 0;
2059 serial->rx_urb_filled[hso_urb_to_index(serial, urb)] = 0; 2057 serial->rx_urb_filled[hso_urb_to_index(serial, urb)] = 0;