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-Url: https://git.stricted.de/?a=commitdiff_plain;h=611e0d83a83724340d4bf0eed610af01401b2ff4;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.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 9ef77a52c4f2..57b3a80b4359 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);