From: John Ogness <john.ogness@linutronix.de>
To: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
Jiri Slaby <jirislaby@kernel.org>
Cc: "Andy Shevchenko" <andy.shevchenko@gmail.com>,
"Petr Mladek" <pmladek@suse.com>,
"Sebastian Andrzej Siewior" <bigeasy@linutronix.de>,
"Jon Hunter" <jonathanh@nvidia.com>,
"Thierry Reding" <thierry.reding@kernel.org>,
linux-kernel@vger.kernel.org,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
"Crescent Hsieh" <crescentcy.hsieh@moxa.com>,
"Hugo Villeneuve" <hvilleneuve@dimonoff.com>,
linux-serial@vger.kernel.org
Subject: [PATCH tty 1/1] serial: 8250: Change console_msr_work to IRQ_WORK_LAZY
Date: Fri, 28 Aug 2026 18:04:08 +0206 [thread overview]
Message-ID: <20260828155811.270462-2-john.ogness@linutronix.de> (raw)
In-Reply-To: <20260828155811.270462-1-john.ogness@linutronix.de>
For some platforms it is a problem to queue irq_work when entering
cpuidle states. Since irq_work is used for deferred MSR handling,
any atomic console printing when entering cpuidle states can lead
to the affected hardware hanging. Tegra20 and Tegra30 are examples
of such platforms. Avoiding raising the irq_work IRQ has shown to
circumvent the problem.
Change the console_msr_work to be IRQ_WORK_LAZY, thus not raising
an IRQ upon irq_work queuing. The irq_work is then handled on the
next interrupt (worst case, kernel tick).
Link: https://lore.kernel.org/lkml/f3757a75-0ba1-4558-bf57-f19ab7e59a4c@nvidia.com
Fixes: d3539347022a ("serial: 8250: Switch to nbcon console, take 2")
Signed-off-by: John Ogness <john.ogness@linutronix.de>
---
drivers/tty/serial/8250/8250_port.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
index 38fa45e74a37a..1acb73e45f8a0 100644
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
@@ -3597,7 +3597,7 @@ int serial8250_console_setup(struct uart_port *port, char *options, bool probe)
up->console_line_ended = true;
up->console_msr_work_allow = true;
- init_irq_work(&up->console_msr_work, console_msr_handler);
+ up->console_msr_work = IRQ_WORK_INIT_LAZY(console_msr_handler);
if (options)
uart_parse_options(options, &baud, &parity, &bits, &flow);
--
2.47.3
next prev parent reply other threads:[~2026-08-28 15:58 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-28 15:58 [PATCH tty 0/1] Make 8250 deferred MSR handling LAZY John Ogness
2026-08-28 15:58 ` John Ogness [this message]
2026-08-28 16:06 ` [PATCH tty 1/1] serial: 8250: Change console_msr_work to IRQ_WORK_LAZY Sebastian Andrzej Siewior
2026-08-28 16:41 ` John Ogness
2026-08-28 17:06 ` Jon Hunter
2026-08-30 7:42 ` Andy Shevchenko
2026-08-31 8:20 ` Sebastian Andrzej Siewior
2026-09-01 9:20 ` Jon Hunter
2026-08-31 15:23 ` Petr Mladek
2026-09-01 7:50 ` Sebastian Andrzej Siewior
2026-08-28 16:18 ` sashiko-bot
2026-09-02 8:34 ` Jon Hunter
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=20260828155811.270462-2-john.ogness@linutronix.de \
--to=john.ogness@linutronix.de \
--cc=andriy.shevchenko@linux.intel.com \
--cc=andy.shevchenko@gmail.com \
--cc=bigeasy@linutronix.de \
--cc=crescentcy.hsieh@moxa.com \
--cc=gregkh@linuxfoundation.org \
--cc=hvilleneuve@dimonoff.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=jirislaby@kernel.org \
--cc=jonathanh@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=pmladek@suse.com \
--cc=thierry.reding@kernel.org \
/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