Просмотр исходного кода

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 <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Peter Hurley 10 лет назад
Родитель
Сommit
611e0d83a8
1 измененных файлов с 4 добавлено и 0 удалено
  1. 4 0
      drivers/tty/serial/8250/8250_port.c

+ 4 - 0
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);