summaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorJan Dumon2010-01-05 05:52:42 +0100
committerDavid S. Miller2010-01-07 09:43:46 +0100
commit0e0367e980b55629917f3dd5f5f0ccbf3d0dab62 (patch)
treefea3cbbca07b0179acbc923dfa9f36045267c6db /drivers/net
parenthso: Attempt to recover from usb bus errors (diff)
downloadkernel-qcow2-linux-0e0367e980b55629917f3dd5f5f0ccbf3d0dab62.tar.gz
kernel-qcow2-linux-0e0367e980b55629917f3dd5f5f0ccbf3d0dab62.tar.xz
kernel-qcow2-linux-0e0367e980b55629917f3dd5f5f0ccbf3d0dab62.zip
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>
Diffstat (limited to 'drivers/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);