On 5/25/20 3:59 AM, Andy Shevchenko wrote: > The commit a3cb39d258ef > ("serial: core: Allow detach and attach serial device for console") > changed a bit logic behind lock initialization since for most of the console > driver it's supposed to have lock already initialized even if console is not > enabled. However, it's not the case for Freescale IMX console. > > Initialize lock explicitly in the ->probe(). > > Note, there is still an open question should or shouldn't not this driver > register console properly. > > Fixes: a3cb39d258ef ("serial: core: Allow detach and attach serial device for console") > Reported-by: Guenter Roeck <linux@xxxxxxxxxxxx> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> I really wonder if this is the correct fix, especially since it looks like there are several other drivers which don't call register_console() either but implement a console device. Guenter > --- > drivers/tty/serial/imx.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c > index 986d902fb7fe..6b078e395931 100644 > --- a/drivers/tty/serial/imx.c > +++ b/drivers/tty/serial/imx.c > @@ -2404,6 +2404,9 @@ static int imx_uart_probe(struct platform_device *pdev) > } > } > > + /* We need to initialize lock even for non-registered console */ > + spin_lock_init(&sport->port.lock); > + > imx_uart_ports[sport->port.line] = sport; > > platform_set_drvdata(pdev, sport); >