diff --git a/drivers/serial/serial_txx9.c b/drivers/serial/serial_txx9.c index f10c86d..3f8dc41 100644 --- a/drivers/serial/serial_txx9.c +++ b/drivers/serial/serial_txx9.c @@ -1065,6 +1065,14 @@ static int __devinit serial_txx9_registe uart->port.mapbase = port->mapbase; if (port->dev) uart->port.dev = port->dev; + + /* + * If this port is a console, its spinlock couldn't have been + * initialized by serial_txx9_console_setup() and it won't be + * initialized by uart_add_one_port(), so have to do it here... + */ + spin_lock_init(&uart->port.lock); + ret = uart_add_one_port(&serial_txx9_reg, &uart->port); if (ret == 0) ret = uart->port.line;