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 <geert+rene...@glider.be>
Reviewed-by: Simon Horman <horms+rene...@verge.net.au> > --- > Tested with scifa0 on r8a7740/armadillo, after > > echo 2000 > /sys/devices/platform/e6c40000.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(&s->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 >