diff mbox series

powerpc/boot: Mark exit() and ps3_exit() as __noreturn

Message ID 20260807152353.306889-2-thorsten.blum@linux.dev (mailing list archive)
State New
Headers show
Series powerpc/boot: Mark exit() and ps3_exit() as __noreturn | expand

Commit Message

Thorsten Blum Aug. 7, 2026, 3:23 p.m. UTC
Since neither exit() nor ps3_exit() return, annotate both functions with
the __noreturn attribute to improve compiler optimizations.

Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
---
 arch/powerpc/boot/ops.h | 2 +-
 arch/powerpc/boot/ps3.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Christophe Leroy (CS GROUP) Aug. 7, 2026, 3:32 p.m. UTC | #1
Le 07/08/2026 à 17:23, Thorsten Blum a écrit :
> Since neither exit() nor ps3_exit() return, annotate both functions with
> the __noreturn attribute to improve compiler optimizations.

Is it worth spending time optimising a boot sequence that will run only 
once at startup ?

Do you have any figure on the improvement ?

Christophe

> 
> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
> ---
>   arch/powerpc/boot/ops.h | 2 +-
>   arch/powerpc/boot/ps3.c | 2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/powerpc/boot/ops.h b/arch/powerpc/boot/ops.h
> index a40c2162a4e9..df52b14816e2 100644
> --- a/arch/powerpc/boot/ops.h
> +++ b/arch/powerpc/boot/ops.h
> @@ -217,7 +217,7 @@ static inline void free(void *ptr)
>   		platform_ops.free(ptr);
>   }
>   
> -static inline void exit(void)
> +static inline void __noreturn exit(void)
>   {
>   	if (platform_ops.exit)
>   		platform_ops.exit();
> diff --git a/arch/powerpc/boot/ps3.c b/arch/powerpc/boot/ps3.c
> index 89ff46b8b225..22fa35960926 100644
> --- a/arch/powerpc/boot/ps3.c
> +++ b/arch/powerpc/boot/ps3.c
> @@ -45,7 +45,7 @@ static void ps3_console_write(const char *buf, int len)
>   {
>   }
>   
> -static void ps3_exit(void)
> +static void __noreturn ps3_exit(void)
>   {
>   	printf("ps3_exit\n");
>
Thorsten Blum Aug. 7, 2026, 7:54 p.m. UTC | #2
On Fri, Aug 07, 2026 at 05:32:44PM +0200, Christophe Leroy (CS GROUP) wrote:
> Le 07/08/2026 à 17:23, Thorsten Blum a écrit :
> > Since neither exit() nor ps3_exit() return, annotate both functions with
> > the __noreturn attribute to improve compiler optimizations.
> 
> Is it worth spending time optimising a boot sequence that will run only once
> at startup ?
> 
> Do you have any figure on the improvement ?

No, and I haven't checked its impact. Maybe compilers can already infer
that both functions never return and optimize them accordingly. Besides
potential compiler optimizations, it also serves as documentation.

I can reword the commit message to clarify that, or drop the patch.

Thanks,
Thorsten
diff mbox series

Patch

diff --git a/arch/powerpc/boot/ops.h b/arch/powerpc/boot/ops.h
index a40c2162a4e9..df52b14816e2 100644
--- a/arch/powerpc/boot/ops.h
+++ b/arch/powerpc/boot/ops.h
@@ -217,7 +217,7 @@  static inline void free(void *ptr)
 		platform_ops.free(ptr);
 }
 
-static inline void exit(void)
+static inline void __noreturn exit(void)
 {
 	if (platform_ops.exit)
 		platform_ops.exit();
diff --git a/arch/powerpc/boot/ps3.c b/arch/powerpc/boot/ps3.c
index 89ff46b8b225..22fa35960926 100644
--- a/arch/powerpc/boot/ps3.c
+++ b/arch/powerpc/boot/ps3.c
@@ -45,7 +45,7 @@  static void ps3_console_write(const char *buf, int len)
 {
 }
 
-static void ps3_exit(void)
+static void __noreturn ps3_exit(void)
 {
 	printf("ps3_exit\n");