On 2024-01-23, Junxiao Chang <junxiao.chang@xxxxxxxxx> wrote: > There are two serial port devices in one Intel ADL hardware, one is > 8250 lpss, another is 8250 dw. Multiple uart devices are enumerated as > ttyS0, ttyS4, ttyS5,... With 6.6.10 rt18 kernel, booting hangs in > nbcon_release if console is enabled by appending > "console=ttySx,115200n8" to kernel command line. According to nbcon > author John's suggestion, lock flag is moved from console structure to > uart_port. Another patch is to add uart_is_nbcon checking in > nbcon_release. Isn't the real issue that the console pointer is copied to device that are not consoles? I am wondering why that is. Is it possible to dynamically switch the console index during runtime? If not, I think a proper fix would be to only assign @cons if it actually registered as a console. This would also simplify the uart_console() macro. It is critical that a struct console is not shared by multiple devices. I do not like the idea (or see the point) of having non-console devices store a struct console pointer that is registered with another device. I will take a closer look at that. John