From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org,
linux-rt-users <linux-rt-users@vger.kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Carsten Emde <C.Emde@osadl.org>,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
John Kacur <jkacur@redhat.com>, Daniel Wagner <wagi@monom.org>,
Tom Zanussi <zanussi@kernel.org>,
"Srivatsa S. Bhat" <srivatsa@csail.mit.edu>,
Chao Qin <chao.qin@intel.com>, Lili Li <lili.li@intel.com>,
John Ogness <john.ogness@linutronix.de>
Subject: [PATCH RT 1/2] printk: Enhance the condition check of msleep in pr_flush()
Date: Fri, 06 Aug 2021 18:47:24 -0400 [thread overview]
Message-ID: <20210806224751.111394551@goodmis.org> (raw)
In-Reply-To: 20210806224723.958744677@goodmis.org
5.10.56-rt49-rc1 stable review patch.
If anyone has any objections, please let me know.
------------------
From: Chao Qin <chao.qin@intel.com>
[ Upstream commit 83e9288d9c4295d1195e9d780fcbc42c72ba4a83 ]
There is msleep in pr_flush(). If call WARN() in the early boot
stage such as in early_initcall, pr_flush() will run into msleep
when process scheduler is not ready yet. And then the system will
sleep forever.
Before the system_state is SYSTEM_RUNNING, make sure DO NOT sleep
in pr_flush().
Fixes: c0b395bd0fe3("printk: add pr_flush()")
Signed-off-by: Chao Qin <chao.qin@intel.com>
Signed-off-by: Lili Li <lili.li@intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: John Ogness <john.ogness@linutronix.de>
Signed-off-by: John Ogness <john.ogness@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/lkml/20210719022649.3444072-1-chao.qin@intel.com
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
kernel/printk/printk.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index f56fd2e34cc7..53d90278494b 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -3545,7 +3545,9 @@ bool pr_flush(int timeout_ms, bool reset_on_progress)
u64 diff;
u64 seq;
- may_sleep = (preemptible() && !in_softirq());
+ may_sleep = (preemptible() &&
+ !in_softirq() &&
+ system_state >= SYSTEM_RUNNING);
seq = prb_next_seq(prb);
--
2.30.2
next prev parent reply other threads:[~2021-08-06 22:47 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-06 22:47 [PATCH RT 0/2] Linux 5.10.56-rt49-rc1 Steven Rostedt
2021-08-06 22:47 ` Steven Rostedt [this message]
2021-08-06 22:47 ` [PATCH RT 2/2] " Steven Rostedt
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=20210806224751.111394551@goodmis.org \
--to=rostedt@goodmis.org \
--cc=C.Emde@osadl.org \
--cc=bigeasy@linutronix.de \
--cc=chao.qin@intel.com \
--cc=jkacur@redhat.com \
--cc=john.ogness@linutronix.de \
--cc=lili.li@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rt-users@vger.kernel.org \
--cc=srivatsa@csail.mit.edu \
--cc=tglx@linutronix.de \
--cc=wagi@monom.org \
--cc=zanussi@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.