On Thu, 28 May 2020 at 12:49, <gregkh@xxxxxxxxxxxxxxxxxxx> wrote: > > > This is a note to let you know that I've just added the patch titled > > serial: imx: Initialize lock for non-registered console > > to my tty git tree which can be found at > git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git > in the tty-next branch. > > The patch will show up in the next release of the linux-next tree > (usually sometime within the next 24 hours during the week.) > > The patch will also be merged in the next major kernel release > during the merge window. > > If you have any questions about this process, please let me know. > > > From 8f065acec7573672dd15916e31d1e9b2e785566c Mon Sep 17 00:00:00 2001 > From: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > Date: Mon, 25 May 2020 13:59:52 +0300 > Subject: serial: imx: Initialize lock for non-registered console > > 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> > Cc: stable <stable@xxxxxxxxxxxxxxx> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > Link: https://lore.kernel.org/r/20200525105952.13744-1-andriy.shevchenko@xxxxxxxxxxxxxxx > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > --- > 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); On arm64 Hikey devices running stable-rc 5.7 branch kernel reported following kernel INFO while booting. [ 2.059344] mmc2: new SDIO card at address 0001 [ 2.105114] f7111000.uart: ttyAMA1 at MMIO 0xf7111000 (irq = 8, base_baud = 0) is a PL011 rev2 [ 2.105886] serial serial0: tty port ttyAMA1 registered [ 2.106843] f7112000.uart: ttyAMA2 at MMIO 0xf7112000 (irq = 9, base_baud = 0) is a PL011 rev2 [ 2.109759] f7113000.uart: ttyAMA3 at MMIO 0xf7113000 (irq = 10, base_baud = 0) is a PL011 rev2 [ 2.109916] INFO: trying to register non-static key. [ 2.109936] the code is fine but needs lockdep annotation. [ 2.109956] turning off the locking correctness validator. [ 2.109982] CPU: 2 PID: 57 Comm: kworker/2:1 Not tainted 5.7.3-rc1 #1 [ 2.110004] Hardware name: HiKey Development Board (DT) [ 2.110040] Workqueue: events deferred_probe_work_func [ 2.110063] Call trace: [ 2.110082] dump_backtrace+0x0/0x1e0 [ 2.110100] show_stack+0x24/0x30 [ 2.110120] dump_stack+0xe8/0x150 [ 2.110140] register_lock_class+0x640/0x680 [ 2.110159] __lock_acquire+0x7c/0x1728 [ 2.110178] lock_acquire+0xf8/0x458 [ 2.110200] _raw_spin_lock_irqsave+0x60/0x80 [ 2.110221] uart_add_one_port+0x3ac/0x4e8 [ 2.110242] pl011_register_port+0x70/0xd8 [ 2.110262] pl011_probe+0x154/0x1a0 [ 2.110283] amba_probe+0xcc/0x170 [ 2.110301] really_probe+0x290/0x498 [ 2.110319] driver_probe_device+0x12c/0x148 [ 2.110339] __device_attach_driver+0xa4/0x120 [ 2.110359] bus_for_each_drv+0x78/0xd8 [ 2.110378] __device_attach+0xe8/0x170 [ 2.110397] device_initial_probe+0x24/0x30 [ 2.110416] bus_probe_device+0xa0/0xa8 [ 2.110435] deferred_probe_work_func+0x94/0xf0 [ 2.110458] process_one_work+0x2b0/0x770 [ 2.110477] worker_thread+0x48/0x4a0 [ 2.110496] kthread+0x158/0x168 [ 2.110515] ret_from_fork+0x10/0x18 [ 4.158216] printk: console [ttyAMA3] enabled [ 4.165009] 5V_HUB: supplied by SYS_5V Please refer full test log, https://lkft.validation.linaro.org/scheduler/job/1496830#L3764 metadata: git branch: linux-5.7.y git repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git git commit: f2c964aa9a1ce76f00767fd3fdcebf8e0db2b99e kernel-config: http://snapshots.linaro.org/openembedded/lkft/lkft/sumo/hikey/lkft/linux-stable-rc-5.7/6/config -- Linaro LKFT https://lkft.linaro.org