diff options
author | Alan Cox <alan@redhat.com> | 2008-07-22 06:16:42 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-22 16:03:27 -0400 |
commit | d76f2f4462bbb2cf7bc83a35c5278177aa627e89 (patch) | |
tree | beac09e41cf05235676752dac220d4172bb3ec66 /drivers/usb | |
parent | 03f0dbf74c7a117c270e63d62d5e4927af6f295b (diff) |
io_edgeport: Fix various bogus returns to the tty layer
The edgeport reports negative error codes to functions that do not
expect them. This can cause ports to jam forever
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/serial/io_edgeport.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/usb/serial/io_edgeport.c b/drivers/usb/serial/io_edgeport.c index b4bd6847a96d..bfa508ddb0fe 100644 --- a/drivers/usb/serial/io_edgeport.c +++ b/drivers/usb/serial/io_edgeport.c | |||
@@ -1404,15 +1404,15 @@ static int edge_write_room(struct tty_struct *tty) | |||
1404 | dbg("%s", __func__); | 1404 | dbg("%s", __func__); |
1405 | 1405 | ||
1406 | if (edge_port == NULL) | 1406 | if (edge_port == NULL) |
1407 | return -ENODEV; | 1407 | return 0; |
1408 | if (edge_port->closePending) | 1408 | if (edge_port->closePending) |
1409 | return -ENODEV; | 1409 | return 0; |
1410 | 1410 | ||
1411 | dbg("%s - port %d", __func__, port->number); | 1411 | dbg("%s - port %d", __func__, port->number); |
1412 | 1412 | ||
1413 | if (!edge_port->open) { | 1413 | if (!edge_port->open) { |
1414 | dbg("%s - port not opened", __func__); | 1414 | dbg("%s - port not opened", __func__); |
1415 | return -EINVAL; | 1415 | return 0; |
1416 | } | 1416 | } |
1417 | 1417 | ||
1418 | /* total of both buffers is still txCredit */ | 1418 | /* total of both buffers is still txCredit */ |
@@ -1444,13 +1444,13 @@ static int edge_chars_in_buffer(struct tty_struct *tty) | |||
1444 | dbg("%s", __func__); | 1444 | dbg("%s", __func__); |
1445 | 1445 | ||
1446 | if (edge_port == NULL) | 1446 | if (edge_port == NULL) |
1447 | return -ENODEV; | 1447 | return 0; |
1448 | if (edge_port->closePending) | 1448 | if (edge_port->closePending) |
1449 | return -ENODEV; | 1449 | return 0; |
1450 | 1450 | ||
1451 | if (!edge_port->open) { | 1451 | if (!edge_port->open) { |
1452 | dbg("%s - port not opened", __func__); | 1452 | dbg("%s - port not opened", __func__); |
1453 | return -EINVAL; | 1453 | return 0; |
1454 | } | 1454 | } |
1455 | 1455 | ||
1456 | spin_lock_irqsave(&edge_port->ep_lock, flags); | 1456 | spin_lock_irqsave(&edge_port->ep_lock, flags); |