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>
This commit is contained in:
parent
16f404e366
commit
98f8b83d6a
|
@ -436,7 +436,7 @@ static void sunsab_start_tx(struct uart_port *port)
|
||||||
struct circ_buf *xmit = &up->port.state->xmit;
|
struct circ_buf *xmit = &up->port.state->xmit;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (uart_circ_empty(xmit))
|
if (uart_circ_empty(xmit) || uart_tx_stopped(port))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
up->interrupt_mask1 &= ~(SAB82532_IMR1_ALLS|SAB82532_IMR1_XPR);
|
up->interrupt_mask1 &= ~(SAB82532_IMR1_ALLS|SAB82532_IMR1_XPR);
|
||||||
|
|
Loading…
Reference in a new issue