When rs485 transmission over an 8250 port stops, __stop_tx() assigns active_timer = NULL before calling __stop_tx_rs485(). That function in turn either assigns active_timer = stop_tx_timer and rearms the timer (in case a delay_rts_after_send needs to be observed) or directly calls __do_stop_tx_rs485(). Move the assignment active_timer = NULL to __stop_tx_rs485() into the branch which directly calls __do_stop_tx_rs485(), thereby avoiding a duplicate assignment and simplifying the code. Signed-off-by: Lukas Wunner <lukas@xxxxxxxxx> Cc: Matwey V. Kornilov <matwey@xxxxxxxxxx> --- drivers/tty/serial/8250/8250_port.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c index d281aea061d6..1a71625a0d43 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -1498,6 +1498,7 @@ static void __stop_tx_rs485(struct uart_8250_port *p) p->port.rs485.delay_rts_after_send); } else { __do_stop_tx_rs485(p); + em485->active_timer = NULL; } } @@ -1522,8 +1523,6 @@ static inline void __stop_tx(struct uart_8250_port *p) if ((lsr & BOTH_EMPTY) != BOTH_EMPTY) return; - em485->active_timer = NULL; - __stop_tx_rs485(p); } __do_stop_tx(p); -- 2.24.0