[PATCH v5 3/3] sparc: Implement arch_do_panic

From: Mete Durlu

Date: Mon Aug 10 2026 - 07:39:24 EST


Implement sparc specific arch_do_panic() instead of using sparc specific
ifdef sections in vpanic() code.
Reorder arch specific panic handling, sparc's Stop-A messages are now
printed after "end Kernel panic" marker.

Signed-off-by: Mete Durlu <meted@xxxxxxxxxxxxx>
---
arch/sparc/kernel/setup.c | 9 +++++++++
kernel/panic.c | 9 ---------
2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/arch/sparc/kernel/setup.c b/arch/sparc/kernel/setup.c
index 4975867d9001..5f43cef80638 100644
--- a/arch/sparc/kernel/setup.c
+++ b/arch/sparc/kernel/setup.c
@@ -2,6 +2,8 @@

#include <asm/setup.h>
#include <linux/sysctl.h>
+#include <linux/panic.h>
+#include <linux/printk.h>

static const struct ctl_table sparc_sysctl_table[] = {
{
@@ -36,6 +38,13 @@ static const struct ctl_table sparc_sysctl_table[] = {
#endif
};

+void arch_do_panic(void)
+{
+ /* Make sure the user can actually press Stop-A (L1-A) */
+ stop_a_enabled = 1;
+ pr_emerg("Press Stop-A (L1-A) from sun keyboard or send break\n"
+ "twice on console to return to the boot prom\n");
+}

static int __init init_sparc_sysctls(void)
{
diff --git a/kernel/panic.c b/kernel/panic.c
index ee6e3f9e3900..7dda841c16f9 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -744,15 +744,6 @@ void vpanic(const char *fmt, va_list args)
reboot_mode = panic_reboot_mode;
emergency_restart();
}
-#ifdef __sparc__
- {
- extern int stop_a_enabled;
- /* Make sure the user can actually press Stop-A (L1-A) */
- stop_a_enabled = 1;
- pr_emerg("Press Stop-A (L1-A) from sun keyboard or send break\n"
- "twice on console to return to the boot prom\n");
- }
-#endif
pr_emerg("---[ end Kernel panic - not syncing: %s ]---\n", buf);

arch_do_panic();

--
2.55.0