From: Bradley Morgan <include@grrlz.net>
To: akpm@linux-foundation.org
Cc: pmladek@suse.com, feng.tang@linux.alibaba.com,
linux-kernel@vger.kernel.org, include@grrlz.net
Subject: [PATCH] panic: make force_cpu redirect work from an NMI
Date: Tue, 7 Jul 2026 20:59:21 +0000 [thread overview]
Message-ID: <20260707205921.15247-1-include@grrlz.net> (raw)
nmi_panic sets panic_cpu first. Bail only on a different
owner, and hand panic_cpu to the target after the IPI.
Found by sashiko [1].
[1] https://sashiko.dev/#/patchset/20260707183253.9793-1-include@grrlz.net
Signed-off-by: Bradley Morgan <include@grrlz.net>
---
kernel/panic.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/kernel/panic.c b/kernel/panic.c
index e46c37b39c40..95ebf2bb0bf9 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -396,8 +396,8 @@ static bool panic_try_force_cpu(const char *fmt, va_list args)
return false;
}
- /* Another panic already in progress */
- if (panic_in_progress())
+ /* Bail only if a different CPU is already handling it. */
+ if (panic_in_progress() && atomic_read(&panic_cpu) != this_cpu)
return false;
/* Which CPU won the race? */
@@ -440,6 +440,9 @@ static bool panic_try_force_cpu(const char *fmt, va_list args)
return false;
}
+ /* Hand panic_cpu to the target so it wins its own panic_try_start. */
+ atomic_set(&panic_cpu, panic_force_cpu);
+
/* IPI/NMI sent, this CPU should stop */
return true;
}
--
2.53.0
next reply other threads:[~2026-07-07 20:59 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-07 20:59 Bradley Morgan [this message]
2026-07-08 12:44 ` [PATCH] panic: make force_cpu redirect work from an NMI Petr Mladek
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=20260707205921.15247-1-include@grrlz.net \
--to=include@grrlz.net \
--cc=akpm@linux-foundation.org \
--cc=feng.tang@linux.alibaba.com \
--cc=linux-kernel@vger.kernel.org \
--cc=pmladek@suse.com \
/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.