From: Aleksandar Mitev Date: Fri, 18 Sep 2015 11:08:28 +0000 (+0200) Subject: serial: sh-sci: Remove timer on shutdown of port X-Git-Tag: firefly_0821_release~176^2~803^2~101 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;ds=sidebyside;h=9ab76556608665c35080f641c73025297d0a2813;p=firefly-linux-kernel-4.4.55.git serial: sh-sci: Remove timer on shutdown of port This prevents DMA timer timeout that can trigger after the port has been closed. Signed-off-by: Aleksandar Mitev [geert: Move del_timer_sync() outside spinlock to avoid circular locking dependency between rx_timer_fn() and del_timer_sync()] Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index ac9ce8f1ff79..36a11110acf4 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -1810,6 +1810,14 @@ static void sci_shutdown(struct uart_port *port) sci_stop_tx(port); spin_unlock_irqrestore(&port->lock, flags); +#ifdef CONFIG_SERIAL_SH_SCI_DMA + if (s->chan_rx) { + dev_dbg(port->dev, "%s(%d) deleting rx_timer\n", __func__, + port->line); + del_timer_sync(&s->rx_timer); + } +#endif + sci_free_dma(port); sci_free_irq(s); }