summaryrefslogtreecommitdiff
path: root/drivers/tty/serial/sunsab.c
diff options
context:
space:
mode:
authorPeter Hurley <peter@hurleysoftware.com>2014-09-03 01:39:15 +0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-09-09 03:22:42 +0400
commitdb106df32d679db151b48a09543b03ee41cb2580 (patch)
treebef38581727c0696e7aac02df61ceb9a8a093685 /drivers/tty/serial/sunsab.c
parentfba594a848f6f35417a358565086d22c533c19c8 (diff)
downloadlinux-db106df32d679db151b48a09543b03ee41cb2580.tar.xz
serial: Fix send_xchar() handlers
START_CHAR() & STOP_CHAR() can be disabled if set to '\0' (__DISABLED_CHAR). UART drivers which define a send_xchar() handler must not transmit __DISABLED_CHAR. Document requirement. Affected drivers: sunsab sunhv cc: David S. Miller <davem@davemloft.net> cc: <sparclinux@vger.kernel.org> Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/sunsab.c')
-rw-r--r--drivers/tty/serial/sunsab.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/tty/serial/sunsab.c b/drivers/tty/serial/sunsab.c
index b9598b227a45..0af75f8b98a4 100644
--- a/drivers/tty/serial/sunsab.c
+++ b/drivers/tty/serial/sunsab.c
@@ -468,6 +468,9 @@ static void sunsab_send_xchar(struct uart_port *port, char ch)
struct uart_sunsab_port *up = (struct uart_sunsab_port *) port;
unsigned long flags;
+ if (ch == __DISABLED_CHAR)
+ return;
+
spin_lock_irqsave(&up->port.lock, flags);
sunsab_tec_wait(up);