Re: [PATCH v2 0/3] Introduce arch_do_panic

Heiko Carstens <[email protected]> Wed, 29 Jul 2026 10:56:55 +0200
Newsgroups gmane.linux.ports.sparc,gmane.linux.kernel
Message-ID <[email protected]>
On Mon, Jul 27, 2026 at 12:36:19PM +0200, Mete Durlu wrote:
> 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 <[email protected]>
> ---
> 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(-)

Putting the define in a different header file per architecture doesn't
seem to be a good idea. There is no guarantee that this will work. So
either you find a common header file, where it is known that is (and
will be) included in panic.c, or you go with a weak function.