Different uart ports might have same console pointer, not all of uart ports are nbcon. When uart port is shutdown, only release nbcon if it is nbcon. There is same nbcon checking in API nbcon_acquire. Fixes: 6424f396c49e ("printk: nbcon: Implement processing in port->lock wrapper") Signed-off-by: Junxiao Chang <junxiao.chang@xxxxxxxxx> --- kernel/printk/nbcon.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/printk/nbcon.c b/kernel/printk/nbcon.c index 1b1b585b1675b..e53b8bebbb57e 100644 --- a/kernel/printk/nbcon.c +++ b/kernel/printk/nbcon.c @@ -1623,6 +1623,9 @@ void nbcon_release(struct uart_port *up) .prio = NBCON_PRIO_NORMAL, }; + if (!uart_is_nbcon(up)) + return; + if (!con->locked_port) return; -- 2.34.1