summary refs log tree commit diff
diff options
context:
space:
mode:
authorJan Dumon <j.dumon@option.com>2010-01-05 04:52:42 +0000
committerDavid S. Miller <davem@davemloft.net>2010-01-07 00:43:46 -0800
commit0e0367e980b55629917f3dd5f5f0ccbf3d0dab62 (patch)
treefea3cbbca07b0179acbc923dfa9f36045267c6db
parent68a351c501ad22077a969df157cd13367cb43a40 (diff)
downloadlinux-0e0367e980b55629917f3dd5f5f0ccbf3d0dab62.tar.gz
hso: Fix for 5 sec timeouts with v2.x firmware
Don't send flow control settings to any port other than the modem port.
Older firmware ignored this request but did sent a reply. Newer firmware just
ignores it without reply and causes a 5 second timeout every time a port
(except for the modem port) is opened or if tiocm settings are changed.

Signed-off-by: Jan Dumon <j.dumon@option.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/usb/hso.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
index 7482d0d5e278..67eb8390cf07 100644
--- a/drivers/net/usb/hso.c
+++ b/drivers/net/usb/hso.c
@@ -1723,6 +1723,10 @@ static int hso_serial_tiocmset(struct tty_struct *tty, struct file *file,
 		D1("no tty structures");
 		return -EINVAL;
 	}
+
+	if ((serial->parent->port_spec & HSO_PORT_MASK) != HSO_PORT_MODEM)
+		return -EINVAL;
+
 	if_num = serial->parent->interface->altsetting->desc.bInterfaceNumber;
 
 	spin_lock_irqsave(&serial->serial_lock, flags);