From: Peter Hurley Date: Sun, 10 Jan 2016 22:39:35 +0000 (-0800) Subject: serial: 8250: Wait for irq to complete before shutdown X-Git-Tag: v4.14-rc1~3636^2~166 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=611e0d83a83724340d4bf0eed610af01401b2ff4;p=platform%2Fkernel%2Flinux-rpi.git serial: 8250: Wait for irq to complete before shutdown After masking all interrupts, wait for the irq handler to complete before continuing shutdown. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c index 9ef77a5..57b3a80 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -2088,8 +2088,12 @@ void serial8250_do_shutdown(struct uart_port *port) /* * Disable interrupts from this port */ + spin_lock_irqsave(&port->lock, flags); up->ier = 0; serial_port_out(port, UART_IER, 0); + spin_unlock_irqrestore(&port->lock, flags); + + synchronize_irq(port->irq); if (up->dma) serial8250_release_dma(up);