public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: John Ogness <john.ogness@linutronix.de>
To: "Chang, Junxiao" <junxiao.chang@intel.com>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: "tglx@linutronix.de" <tglx@linutronix.de>,
	"rostedt@goodmis.org" <rostedt@goodmis.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Li, Hao3" <hao3.li@intel.com>, "Li, Lili" <lili.li@intel.com>,
	"Gao, Jianfeng" <jianfeng.gao@intel.com>,
	"linux-rt-users@vger.kernel.org" <linux-rt-users@vger.kernel.org>
Subject: RE: [PATCH] printk: nbcon: check uart port is nbcon or not in nbcon_release
Date: Wed, 17 Jan 2024 14:48:28 +0106	[thread overview]
Message-ID: <87r0igrs8r.fsf@jogness.linutronix.de> (raw)
In-Reply-To: <BN9PR11MB53709FD2BC70878B49059107EC722@BN9PR11MB5370.namprd11.prod.outlook.com>

On 2024-01-17, "Chang, Junxiao" <junxiao.chang@intel.com> wrote:
> As you mentioned, same console driver is only registered once. 8250
> console driver is registered once, its "struct console *newcon"
> parameter is address of "univ8250_console" which is defined in
> drivers\tty\serial\8250\8250_core.c.
>
> However, in each serial port device is registered, their cons pointer(
> "struct console *cons;" in "struct uart_port") will be assigned with
> same cons in API serial_core_add_one_port:
>
> 	uport->cons = drv->cons;
>
> That is, multiple similar 8250 uart_port devices have same console
> pointer which points to above univ8250_console.

Ah. This explains the "(port)->cons->index == (port)->line" check in
uart_console(). Thank you for clarifying.

> BTW, this issue couldn't be reproduced with v6.6.7-rt17 kernel.

The reason for the change is because console registration/unregistration
is not related to the port lock. There is a potential race condition if
nbcon unlocking is based on the UART port still being registered as a
console.

We could move the @locked_port flag to the struct uart_port. (Probably
renaming it to @nbcon_locked_port.) I think that would be the
appropriate fix.

John

  reply	other threads:[~2024-01-17 13:42 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-17  6:52 [PATCH] printk: nbcon: check uart port is nbcon or not in nbcon_release Junxiao Chang
2024-01-17  8:23 ` John Ogness
2024-01-17  8:45   ` Chang, Junxiao
2024-01-17 10:03     ` John Ogness
2024-01-17 10:24       ` Sebastian Andrzej Siewior
2024-01-17 13:08         ` Chang, Junxiao
2024-01-17 13:42           ` John Ogness [this message]
2024-01-23  3:05             ` Chang, Junxiao
2024-01-23  5:40               ` [PATCH 0/2] nbcon locking issue with v6.6.10-rt18 kernel Junxiao Chang
2024-01-23  5:40                 ` [PATCH 1/2] printk: nbcon: move locked_port flag to struct uart_port Junxiao Chang
2024-01-24  9:47                   ` John Ogness
2024-01-24 10:05                     ` Sebastian Andrzej Siewior
2024-01-25  1:08                       ` Chang, Junxiao
2024-01-25 13:35                         ` Sebastian Andrzej Siewior
2024-01-25 23:20                           ` Chang, Junxiao
2024-01-26  7:58                           ` John Ogness
2024-01-26 16:39                             ` Sebastian Andrzej Siewior
2024-01-23  5:40                 ` [PATCH 2/2] printk: nbcon: check uart port is nbcon or not in nbcon_release Junxiao Chang
2024-01-24  9:57                   ` John Ogness
2024-01-26  2:33                     ` Chang, Junxiao
2024-01-24  9:40                 ` [PATCH 0/2] nbcon locking issue with v6.6.10-rt18 kernel John Ogness

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87r0igrs8r.fsf@jogness.linutronix.de \
    --to=john.ogness@linutronix.de \
    --cc=bigeasy@linutronix.de \
    --cc=hao3.li@intel.com \
    --cc=jianfeng.gao@intel.com \
    --cc=junxiao.chang@intel.com \
    --cc=lili.li@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox