From: Alan Cox Date: Tue, 22 Jul 2008 10:16:42 +0000 (+0100) Subject: io_edgeport: Fix various bogus returns to the tty layer X-Git-Tag: v2.6.27-rc1~891 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d76f2f4462bbb2cf7bc83a35c5278177aa627e89;p=linux-2.6 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 Signed-off-by: Greg Kroah-Hartman Signed-off-by: Linus Torvalds --- diff --git a/drivers/usb/serial/io_edgeport.c b/drivers/usb/serial/io_edgeport.c index b4bd6847a9..bfa508ddb0 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) dbg("%s", __func__); if (edge_port == NULL) - return -ENODEV; + return 0; if (edge_port->closePending) - return -ENODEV; + return 0; dbg("%s - port %d", __func__, port->number); if (!edge_port->open) { dbg("%s - port not opened", __func__); - return -EINVAL; + return 0; } /* total of both buffers is still txCredit */ @@ -1444,13 +1444,13 @@ static int edge_chars_in_buffer(struct tty_struct *tty) dbg("%s", __func__); if (edge_port == NULL) - return -ENODEV; + return 0; if (edge_port->closePending) - return -ENODEV; + return 0; if (!edge_port->open) { dbg("%s - port not opened", __func__); - return -EINVAL; + return 0; } spin_lock_irqsave(&edge_port->ep_lock, flags);