All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josh Poimboeuf <jpoimboe@kernel.org>
To: x86@kernel.org
Cc: linux-kernel@vger.kernel.org,
	Peter Zijlstra <peterz@infradead.org>,
	Miroslav Benes <mbenes@suse.cz>,
	linux-btrfs@vger.kernel.org, Mark Rutland <mark.rutland@arm.com>,
	linux-scsi@vger.kernel.org, linux-hyperv@vger.kernel.org,
	Arnd Bergmann <arnd@arndb.de>,
	"Guilherme G . Piccoli" <gpiccoli@igalia.com>,
	Michael Kelley <mikelley@microsoft.com>,
	Nick Desaulniers <ndesaulniers@google.com>,
	Nathan Chancellor <nathan@kernel.org>
Subject: [PATCH v2 05/11] cpu: Mark panic_smp_self_stop() __noreturn
Date: Wed, 12 Apr 2023 16:49:35 -0700	[thread overview]
Message-ID: <92d76ab5c8bf660f04fdcd3da1084519212de248.1681342859.git.jpoimboe@kernel.org> (raw)
In-Reply-To: <cover.1681342859.git.jpoimboe@kernel.org>

In preparation for improving objtool's handling of weak noreturn
functions, mark panic_smp_self_stop() __noreturn.

Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
---
 arch/arm/kernel/smp.c          | 2 +-
 arch/arm64/include/asm/smp.h   | 1 -
 arch/arm64/kernel/smp.c        | 2 +-
 arch/powerpc/kernel/setup_64.c | 2 +-
 include/linux/smp.h            | 2 +-
 kernel/panic.c                 | 2 +-
 tools/objtool/check.c          | 1 +
 7 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index d6be4507d22d..f4a4ac028b6b 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -779,7 +779,7 @@ void smp_send_stop(void)
  * kdump fails. So split out the panic_smp_self_stop() and add
  * set_cpu_online(smp_processor_id(), false).
  */
-void panic_smp_self_stop(void)
+void __noreturn panic_smp_self_stop(void)
 {
 	pr_debug("CPU %u will stop doing anything useful since another CPU has paniced\n",
 	         smp_processor_id());
diff --git a/arch/arm64/include/asm/smp.h b/arch/arm64/include/asm/smp.h
index 07f4ea1490f4..f2d26235bfb4 100644
--- a/arch/arm64/include/asm/smp.h
+++ b/arch/arm64/include/asm/smp.h
@@ -143,7 +143,6 @@ bool cpus_are_stuck_in_kernel(void);
 
 extern void crash_smp_send_stop(void);
 extern bool smp_crash_stop_failed(void);
-extern void panic_smp_self_stop(void);
 
 #endif /* ifndef __ASSEMBLY__ */
 
diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
index 07d156fddb5f..05fe797e4203 100644
--- a/arch/arm64/kernel/smp.c
+++ b/arch/arm64/kernel/smp.c
@@ -830,7 +830,7 @@ static void __noreturn local_cpu_stop(void)
  * that cpu_online_mask gets correctly updated and smp_send_stop() can skip
  * CPUs that have already stopped themselves.
  */
-void panic_smp_self_stop(void)
+void __noreturn panic_smp_self_stop(void)
 {
 	local_cpu_stop();
 }
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index b2e0d3ce4261..246201d0d879 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -480,7 +480,7 @@ void early_setup_secondary(void)
 
 #endif /* CONFIG_SMP */
 
-void panic_smp_self_stop(void)
+void __noreturn panic_smp_self_stop(void)
 {
 	hard_irq_disable();
 	spin_begin();
diff --git a/include/linux/smp.h b/include/linux/smp.h
index a80ab58ae3f1..2a737b39cf0a 100644
--- a/include/linux/smp.h
+++ b/include/linux/smp.h
@@ -59,7 +59,7 @@ int smp_call_function_single_async(int cpu, struct __call_single_data *csd);
  * Cpus stopping functions in panic. All have default weak definitions.
  * Architecture-dependent code may override them.
  */
-void panic_smp_self_stop(void);
+void __noreturn panic_smp_self_stop(void);
 void nmi_panic_self_stop(struct pt_regs *regs);
 void crash_smp_send_stop(void);
 
diff --git a/kernel/panic.c b/kernel/panic.c
index 5cfea8302d23..5e4982db8dc9 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -141,7 +141,7 @@ EXPORT_SYMBOL(panic_blink);
 /*
  * Stop ourself in panic -- architecture code may override this
  */
-void __weak panic_smp_self_stop(void)
+void __weak __noreturn panic_smp_self_stop(void)
 {
 	while (1)
 		cpu_relax();
diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index 4e89342dd8fb..43946188cd2c 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -218,6 +218,7 @@ static bool __dead_end_function(struct objtool_file *file, struct symbol *func,
 		"machine_real_restart",
 		"make_task_dead",
 		"panic",
+		"panic_smp_self_stop",
 		"rest_init",
 		"rewind_stack_and_make_dead",
 		"sev_es_terminate",
-- 
2.39.2


  parent reply	other threads:[~2023-04-12 23:50 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-12 23:49 [PATCH v2 00/11] Sprinkle more __noreturn Josh Poimboeuf
2023-04-12 23:49 ` [PATCH v2 01/11] init: Mark [arch_call_]rest_init() __noreturn Josh Poimboeuf
2023-04-17 10:46   ` [tip: objtool/core] " tip-bot2 for Josh Poimboeuf
2023-04-12 23:49 ` [PATCH v2 02/11] init: Mark start_kernel() __noreturn Josh Poimboeuf
2023-04-17 10:46   ` [tip: objtool/core] " tip-bot2 for Josh Poimboeuf
2023-04-12 23:49 ` [PATCH v2 03/11] x86/head: Mark *_start_kernel() __noreturn Josh Poimboeuf
2023-04-17 10:46   ` [tip: objtool/core] " tip-bot2 for Josh Poimboeuf
2023-04-12 23:49 ` [PATCH v2 04/11] arm64/cpu: Mark cpu_park_loop() and friends __noreturn Josh Poimboeuf
2023-04-17 10:46   ` [tip: objtool/core] " tip-bot2 for Josh Poimboeuf
2023-04-12 23:49 ` Josh Poimboeuf [this message]
2023-04-17 10:46   ` [tip: objtool/core] cpu: Mark panic_smp_self_stop() __noreturn tip-bot2 for Josh Poimboeuf
2023-04-12 23:49 ` [PATCH v2 06/11] cpu: Mark nmi_panic_self_stop() __noreturn Josh Poimboeuf
2023-04-17 10:46   ` [tip: objtool/core] " tip-bot2 for Josh Poimboeuf
2023-04-12 23:49 ` [PATCH v2 07/11] objtool: Include weak functions in global_noreturns check Josh Poimboeuf
2023-04-14 14:32   ` Miroslav Benes
2023-04-17 10:46   ` [tip: objtool/core] " tip-bot2 for Josh Poimboeuf
2023-04-12 23:49 ` [PATCH v2 08/11] btrfs: Mark btrfs_assertfail() __noreturn Josh Poimboeuf
2023-04-13 14:57   ` David Sterba
2023-04-15  7:19   ` Anand Jain
2023-04-17 10:46   ` [tip: objtool/core] " tip-bot2 for Josh Poimboeuf
2023-04-12 23:49 ` [PATCH v2 09/11] x86/cpu: Mark {hlt,resume}_play_dead() __noreturn Josh Poimboeuf
2023-04-17 10:46   ` [tip: objtool/core] " tip-bot2 for Josh Poimboeuf
2023-04-12 23:49 ` [PATCH v2 10/11] scsi: message: fusion: Mark mpt_halt_firmware() __noreturn Josh Poimboeuf
2023-04-17 10:46   ` [tip: objtool/core] " tip-bot2 for Josh Poimboeuf
2023-04-12 23:49 ` [PATCH v2 11/11] x86/hyperv: Mark hv_ghcb_terminate() as noreturn Josh Poimboeuf
2023-04-17 10:46   ` [tip: objtool/core] " tip-bot2 for Guilherme G. Piccoli

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=92d76ab5c8bf660f04fdcd3da1084519212de248.1681342859.git.jpoimboe@kernel.org \
    --to=jpoimboe@kernel.org \
    --cc=arnd@arndb.de \
    --cc=gpiccoli@igalia.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-hyperv@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mbenes@suse.cz \
    --cc=mikelley@microsoft.com \
    --cc=nathan@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=peterz@infradead.org \
    --cc=x86@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.