Re: RE: [PATCH 1/2] printk: nbcon: move locked_port flag to struct uart_port

From: Sebastian Andrzej Siewior
Date: Thu Jan 25 2024 - 08:35:39 EST


On 2024-01-25 01:08:24 [+0000], Chang, Junxiao wrote:
>
> Issue could be reproduced with our hardware every time. My cmdline is:
> BOOT_IMAGE=(hd0,gpt2)/boot/bzImage-linux-intel-iot-lts-rt-6.6-kernel
> root=PARTLABEL=primary rootwait console=ttyS0,115200 console=tty0
> init=/sbin/preinit-env console=ttyS4,115200n8 console=ttyS5,115200n8
>
> If you would like to try any debug patch with my ADL hardware, please feel free to let me know.
>
> For console pointer sharing issue, from code logic point of view, the call chain looks like:
> serial8250_register_8250_port -> uart_add_one_port -> serial_ctrl_register_port -> serial_core_register_port -> serial_core_add_one_port
>
> In API serial_core_add_one_port, uart_port's console pointer is assigned with driver's console pointer:
> uport->cons = drv->cons;
> Driver's console pointer points to static structure "univ8250_console" which is defined in 8250_core.c
>
> That is, all 8250 serial devices' console pointer are same, they point to univ8250_console.

Okay, So that I see this and the unbalanced acquire/ release part with
the attached patch. I leave it to John…
Btw. You don't see kernel log output on ttyS4 + ttyS5, right? Just a
login prompt.

> Thanks,
> Junxiao

Sebastian