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
next prev parent 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