Re: [PATCH v2 13/24] sh/cpu: Make sure play_dead() doesn't return

Philippe Mathieu-Daudé
2023-02-14T07:58:11Z

On 14/2/23 08:05, Josh Poimboeuf wrote:
> play_dead() doesn't return. Make that more explicit with a BUG().
>
> BUG() is preferable to unreachable() because BUG() is a more explicit
> failure mode and avoids undefined behavior like falling off the edge of
> the function into whatever code happens to be next.
>
> Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
> ---
> arch/sh/include/asm/smp-ops.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/sh/include/asm/smp-ops.h b/arch/sh/include/asm/smp-ops.h
> index e27702130eb6..63866b1595a0 100644
> --- a/arch/sh/include/asm/smp-ops.h
> +++ b/arch/sh/include/asm/smp-ops.h
> @@ -27,6 +27,7 @@ static inline void plat_smp_setup(void)
> static inline void play_dead(void)
> {
> mp_ops->play_dead();
> + BUG();
> }

Shouldn't we decorate plat_smp_ops::play_dead() as noreturn first?