[PATCH v2 0/3] Introduce arch_do_panic

From: Mete Durlu

Date: Mon Jul 27 2026 - 06:43:52 EST


Changes in v2 - Address Sashiko findings;
- Patch 2: Remove unused leftover code
- Patch 2: Mention panic_timeout and shutdown_actions relationship for
s390 in commit message
- Patch 3: Use bug.h instead of setup.h to pass around arch_do_panic
implementation of sparc

Replace architecture-specific ifdef sections in vpanic() with a clean
arch_do_panic() hook. Currently s390 and sparc embed their panic
handlers directly in vpanic() using preprocessor conditionals, making
the common code path harder to maintain.

Introduce arch_do_panic() as an architecture extension point called at
the end of vpanic(). Architectures can use this hook to implement their
specific panic handling without polluting the generic panic code.

Move s390 panic handling from the panic_notifier chain to
arch_do_panic(). This corrects the execution order so that the
panic_timeout is properly evaluated before architecture-specific
actions. The previous notifier-based approach executed too early in the
panic sequence.

Move sparc panic handling from ifdef blocks to arch_do_panic(). Remove
the preprocessor conditionals from vpanic() and place the Stop-A
enablement code in architecture-specific files where it belongs.

The cleanup reduces vpanic() complexity and establishes a pattern for other
architectures needing custom panic behavior.

Signed-off-by: Mete Durlu <meted@xxxxxxxxxxxxx>
---
Mete Durlu (3):
panic: Introduce arch_do_panic
s390: Implement arch_do_panic
sparc: Implement arch_do_panic

arch/s390/include/asm/setup.h | 3 +++
arch/s390/kernel/ipl.c | 15 +--------------
arch/sparc/include/asm/bug.h | 3 +++
arch/sparc/include/asm/setup.h | 1 -
arch/sparc/kernel/setup.c | 8 ++++++++
kernel/panic.c | 18 ++++++------------
6 files changed, 21 insertions(+), 27 deletions(-)
---
base-commit: 48a5a7ab8d6ab7090564339e039c421f315de912
change-id: 20260724-arch_do_panic-a97f699aa332

Best regards,
--
Mete Durlu <meted@xxxxxxxxxxxxx>