On Fri, Jun 29, 2018 at 04:28:03PM +0200, Geert Uytterhoeven wrote:
> The RX FIFO timer may be armed when the port is shut down, hence the
> timer function may still be called afterwards.
>
> Fix this race condition by deleting the timer during port shutdown.
>
> Fixes: 039403765e5da3c6 ("serial: sh-sci: SCIFA/B RX FIFO software timeout")
> Signed-off-by: Geert Uytterhoeven
Reviewed-by: Simon Horman
> ---
> Tested with scifa0 on r8a7740/armadillo, after
>
> echo 2000 > /sys/devices/platform/e6c4.serial/rx_fifo_timeout
> ---
> drivers/tty/serial/sh-sci.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c
> index 5c870ab80b98e25b..04f5b754e69e28dd 100644
> --- a/drivers/tty/serial/sh-sci.c
> +++ b/drivers/tty/serial/sh-sci.c
> @@ -2100,6 +2100,8 @@ static void sci_shutdown(struct uart_port *port)
> }
> #endif
>
> + if (s->rx_trigger > 1 && s->rx_fifo_timeout > 0)
> + del_timer_sync(>rx_fifo_timer);
> sci_free_irq(s);
> sci_free_dma(port);
> }
> --
> 2.17.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sh" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>