Re: [PATCH][next] smpboot: remove inline from __always_inline'd function idle_init

From: Nathan Chancellor
Date: Fri Jul 16 2021 - 18:44:47 EST


On Thu, Jul 15, 2021 at 05:40:18PM +0100, Colin King wrote:
> From: Colin Ian King <colin.king@xxxxxxxxxxxxx>
>
> Declaring a idle_init as inline when it is __always_inline is redundant
> so this can be removed. Also swap the order of __always_inline and void
> to match the more usual coding style.
>
> Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>

This resolves a clang warning that I see:

kernel/smpboot.c:50:20: error: duplicate 'inline' declaration specifier [-Werror,-Wduplicate-decl-specifier]
static inline void __always_inline idle_init(unsigned int cpu)
^
./include/linux/compiler_attributes.h:65:41: note: expanded from macro '__always_inline'
#define __always_inline inline __attribute__((__always_inline__))
^
./include/linux/compiler_types.h:149:16: note: expanded from macro 'inline'
#define inline inline __gnu_inline __inline_maybe_unused notrace
^
1 error generated.

Reviewed-by: Nathan Chancellor <nathan@xxxxxxxxxx>

> ---
> kernel/smpboot.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/smpboot.c b/kernel/smpboot.c
> index 21b7953f8242..cf6acab78538 100644
> --- a/kernel/smpboot.c
> +++ b/kernel/smpboot.c
> @@ -47,7 +47,7 @@ void __init idle_thread_set_boot_cpu(void)
> *
> * Creates the thread if it does not exist.
> */
> -static inline void __always_inline idle_init(unsigned int cpu)
> +static __always_inline void idle_init(unsigned int cpu)
> {
> struct task_struct *tsk = per_cpu(idle_threads, cpu);
>
> --
> 2.31.1
>