summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Hurley <peter@hurleysoftware.com>2014-09-02 17:39:17 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-09-08 16:22:42 -0700
commit98f8b83d6a504615f52a095acf92a2bdad985ae0 (patch)
tree8ae27402b9c4bac86e48597ec823ff119f75c165
parent16f404e3666718917b2541503240cf8430aa49ff (diff)
downloadlinux-98f8b83d6a504615f52a095acf92a2bdad985ae0.tar.bz2
serial: sunsab: Don't enable tx if tx stopped
The serial core may call the UART driver's start_tx() even if tx is stopped; the UART driver must verify tx should be enabled before transmitting. Reported-by: Sam Ravnborg <sam@ravnborg.org> 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>
-rw-r--r--drivers/tty/serial/sunsab.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/tty/serial/sunsab.c b/drivers/tty/serial/sunsab.c
index 0af75f8b98a4..b339fe4811cd 100644
--- a/drivers/tty/serial/sunsab.c
+++ b/drivers/tty/serial/sunsab.c
@@ -436,7 +436,7 @@ static void sunsab_start_tx(struct uart_port *port)
struct circ_buf *xmit = &up->port.state->xmit;
int i;
- if (uart_circ_empty(xmit))
+ if (uart_circ_empty(xmit) || uart_tx_stopped(port))
return;
up->interrupt_mask1 &= ~(SAB82532_IMR1_ALLS|SAB82532_IMR1_XPR);