[PATCH 4.14 12/59] tty/serial: atmel: reschedule TX after RX was started

From: Greg Kroah-Hartman
Date: Thu Sep 19 2019 - 18:15:51 EST


From: Razvan Stefanescu <razvan.stefanescu@xxxxxxxxxxxxx>

commit d2ace81bf902a9f11d52e59e5d232d2255a0e353 upstream.

When half-duplex RS485 communication is used, after RX is started, TX
tasklet still needs to be scheduled tasklet. This avoids console freezing
when more data is to be transmitted, if the serial communication is not
closed.

Fixes: 69646d7a3689 ("tty/serial: atmel: RS485 HD w/DMA: enable RX after TX is stopped")
Signed-off-by: Razvan Stefanescu <razvan.stefanescu@xxxxxxxxxxxxx>
Cc: stable <stable@xxxxxxxxxxxxxxx>
Link: https://lore.kernel.org/r/20190813074025.16218-1-razvan.stefanescu@xxxxxxxxxxxxx
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
drivers/tty/serial/atmel_serial.c | 1 -
1 file changed, 1 deletion(-)

--- a/drivers/tty/serial/atmel_serial.c
+++ b/drivers/tty/serial/atmel_serial.c
@@ -1276,7 +1276,6 @@ atmel_handle_transmit(struct uart_port *

atmel_port->hd_start_rx = false;
atmel_start_rx(port);
- return;
}

atmel_tasklet_schedule(atmel_port, &atmel_port->tasklet_tx);