summaryrefslogtreecommitdiff
path: root/drivers/tty
diff options
context:
space:
mode:
authorPeter Hurley <peter@hurleysoftware.com>2014-09-02 21:39:17 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-09-08 23:22:42 (GMT)
commit98f8b83d6a504615f52a095acf92a2bdad985ae0 (patch)
tree8ae27402b9c4bac86e48597ec823ff119f75c165 /drivers/tty
parent16f404e3666718917b2541503240cf8430aa49ff (diff)
downloadlinux-98f8b83d6a504615f52a095acf92a2bdad985ae0.tar.xz
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>
Diffstat (limited to 'drivers/tty')
-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 0af75f8..b339fe4 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);