]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
panic/printk: replace this_cpu_in_panic() with panic_on_this_cpu()
authorJinchao Wang <wangjinchao600@gmail.com>
Mon, 25 Aug 2025 02:29:35 +0000 (10:29 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Sun, 14 Sep 2025 00:32:52 +0000 (17:32 -0700)
The helper this_cpu_in_panic() duplicated logic already provided by
panic_on_this_cpu().

Remove this_cpu_in_panic() and switch all users to panic_on_this_cpu().

This simplifies the code and avoids having two helpers for the same check.

Link: https://lkml.kernel.org/r/20250825022947.1596226-8-wangjinchao600@gmail.com
Signed-off-by: Jinchao Wang <wangjinchao600@gmail.com>
Cc: Anna Schumaker <anna.schumaker@oracle.com>
Cc: Baoquan He <bhe@redhat.com>
Cc: "Darrick J. Wong" <djwong@kernel.org>
Cc: Dave Young <dyoung@redhat.com>
Cc: Doug Anderson <dianders@chromium.org>
Cc: "Guilherme G. Piccoli" <gpiccoli@igalia.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Joanthan Cameron <Jonathan.Cameron@huawei.com>
Cc: Joel Granados <joel.granados@kernel.org>
Cc: John Ogness <john.ogness@linutronix.de>
Cc: Kees Cook <kees@kernel.org>
Cc: Li Huafei <lihuafei1@huawei.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Luo Gengkun <luogengkun@huaweicloud.com>
Cc: Max Kellermann <max.kellermann@ionos.com>
Cc: Nam Cao <namcao@linutronix.de>
Cc: oushixiong <oushixiong@kylinos.cn>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Qianqiang Liu <qianqiang.liu@163.com>
Cc: Sergey Senozhatsky <senozhatsky@chromium.org>
Cc: Sohil Mehta <sohil.mehta@intel.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: Thomas Gleinxer <tglx@linutronix.de>
Cc: Thomas Zimemrmann <tzimmermann@suse.de>
Cc: Thorsten Blum <thorsten.blum@linux.dev>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Cc: Vivek Goyal <vgoyal@redhat.com>
Cc: Yicong Yang <yangyicong@hisilicon.com>
Cc: Yunhui Cui <cuiyunhui@bytedance.com>
Cc: Yury Norov (NVIDIA) <yury.norov@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/printk.h
kernel/panic.c
kernel/printk/nbcon.c
kernel/printk/printk.c
kernel/printk/printk_ringbuffer.c
lib/dump_stack.c

index 5d22b803f51ea7e950aecbbe9127b27b08bb431e..45c663124c9bd3b294031d839f1253f410313faa 100644 (file)
@@ -330,8 +330,6 @@ static inline bool pr_flush(int timeout_ms, bool reset_on_progress)
 
 #endif
 
-bool this_cpu_in_panic(void);
-
 #ifdef CONFIG_SMP
 extern int __printk_cpu_sync_try_get(void);
 extern void __printk_cpu_sync_wait(void);
index c4ef86fc643f1f0ea5f1257ed0bd28ee88a1f13c..a8b1bf60e09fcc6109038f1bc0463c108cbf04eb 100644 (file)
@@ -348,7 +348,7 @@ EXPORT_SYMBOL(panic_on_this_cpu);
  */
 bool panic_on_other_cpu(void)
 {
-       return (panic_in_progress() && !this_cpu_in_panic());
+       return (panic_in_progress() && !panic_on_this_cpu());
 }
 EXPORT_SYMBOL(panic_on_other_cpu);
 
index 7490865e2f44a357fc44ed9538f24ebea01d79a3..c6d1a4a747e92778a8b5322d4f15fa2dc29d458b 100644 (file)
@@ -1394,7 +1394,7 @@ enum nbcon_prio nbcon_get_default_prio(void)
 {
        unsigned int *cpu_emergency_nesting;
 
-       if (this_cpu_in_panic())
+       if (panic_on_this_cpu())
                return NBCON_PRIO_PANIC;
 
        cpu_emergency_nesting = nbcon_get_cpu_emergency_nesting();
index 5fe35f377b79cb2d7b0617cd80c8dc4f1a93f03b..faa8b1f0585bf9d4bb1885d473686db57fe79de0 100644 (file)
@@ -17,6 +17,7 @@
  *     01Mar01 Andrew Morton
  */
 
+#include "linux/panic.h"
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
 #include <linux/kernel.h>
@@ -345,18 +346,6 @@ static void __up_console_sem(unsigned long ip)
 }
 #define up_console_sem() __up_console_sem(_RET_IP_)
 
-/* Return true if a panic is in progress on the current CPU. */
-bool this_cpu_in_panic(void)
-{
-       /*
-        * We can use raw_smp_processor_id() here because it is impossible for
-        * the task to be migrated to the panic_cpu, or away from it. If
-        * panic_cpu has already been set, and we're not currently executing on
-        * that CPU, then we never will be.
-        */
-       return unlikely(atomic_read(&panic_cpu) == raw_smp_processor_id());
-}
-
 /*
  * Return true if a panic is in progress on a remote CPU.
  *
@@ -365,7 +354,7 @@ bool this_cpu_in_panic(void)
  */
 bool other_cpu_in_panic(void)
 {
-       return (panic_in_progress() && !this_cpu_in_panic());
+       return (panic_in_progress() && !panic_on_this_cpu());
 }
 
 /*
index d9fb053cff67dbdb8741ee3cac60f51ab986e499..e2a1b2d34d2b7b0a2516671cf70c586314f33e30 100644 (file)
@@ -2143,7 +2143,7 @@ static bool _prb_read_valid(struct printk_ringbuffer *rb, u64 *seq,
                         * But it would have the sequence number returned
                         * by "prb_next_reserve_seq() - 1".
                         */
-                       if (this_cpu_in_panic() &&
+                       if (panic_on_this_cpu() &&
                            (!debug_non_panic_cpus || legacy_allow_panic_sync) &&
                            ((*seq + 1) < prb_next_reserve_seq(rb))) {
                                (*seq)++;
index b3a85fe8b673e2090b718b7d490de145fec5b05b..f0c78b5b5324747599f31ed02c43cf7991d1342d 100644 (file)
@@ -102,7 +102,7 @@ static void __dump_stack(const char *log_lvl)
  */
 asmlinkage __visible void dump_stack_lvl(const char *log_lvl)
 {
-       bool in_panic = this_cpu_in_panic();
+       bool in_panic = panic_on_this_cpu();
        unsigned long flags;
 
        /*