aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorAlan Cox <alan@redhat.com>2008-07-22 06:16:42 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-07-22 16:03:27 -0400
commitd76f2f4462bbb2cf7bc83a35c5278177aa627e89 (patch)
treebeac09e41cf05235676752dac220d4172bb3ec66 /drivers/usb
parent03f0dbf74c7a117c270e63d62d5e4927af6f295b (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.c12
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);