]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
tty/serial: atmel: reschedule TX after RX was started
authorRazvan Stefanescu <razvan.stefanescu@microchip.com>
Tue, 13 Aug 2019 07:40:25 +0000 (10:40 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 21 Sep 2019 05:18:16 +0000 (07:18 +0200)
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@microchip.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20190813074025.16218-1-razvan.stefanescu@microchip.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/atmel_serial.c

index 0b4f3690532145da4228b8b8255f0d5da928a31f..8e667967928a91febfb6eb29a8c324d2c33e4586 100644 (file)
@@ -1400,7 +1400,6 @@ atmel_handle_transmit(struct uart_port *port, unsigned int pending)
 
                        atmel_port->hd_start_rx = false;
                        atmel_start_rx(port);
-                       return;
                }
 
                atmel_tasklet_schedule(atmel_port, &atmel_port->tasklet_tx);