Re: [PATCH v4] serial: 8250: Fix autoconfig_irq() to avoid race conditions

From: Thomas Gleixner
Date: Mon Aug 17 2015 - 15:23:24 EST


On Mon, 17 Aug 2015, Taichi Kageyama wrote:
> diff --git tty-next.org/drivers/tty/serial/8250/8250_port.c tty-next.work/drivers/tty/serial/8250/8250_port.c
> index 54e6c8d..9300b59 100644
> --- tty-next.org/drivers/tty/serial/8250/8250_port.c
> +++ tty-next.work/drivers/tty/serial/8250/8250_port.c
> @@ -1238,6 +1238,9 @@ static void autoconfig_irq(struct uart_8250_port *up)
> inb_p(ICP);
> }
>
> + if (uart_console(port))
> + console_lock();
> +
> /* forget possible initially masked and pending IRQ */
> probe_irq_off(probe_irq_on());
> save_mcr = serial_in(up, UART_MCR);
> @@ -1269,6 +1272,9 @@ static void autoconfig_irq(struct uart_8250_port *up)
> if (port->flags & UPF_FOURPORT)
> outb_p(save_ICP, ICP);
>
> + if (uart_console(port))
> + console_unlock();
> +
> port->irq = (irq > 0) ? irq : 0;
> }

Reviewed-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/