[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAMj1kXH8o_xF5OyWSG297niUz4NFj+qTW6Vwn_U_x9eSzmkqkQ@mail.gmail.com>
Date: Wed, 12 May 2021 14:37:01 +0200
From: Ard Biesheuvel <ardb@...nel.org>
To: Arnd Bergmann <arnd@...nel.org>
Cc: Russell King <linux@...linux.org.uk>,
Arnd Bergmann <arnd@...db.de>, Mike Rapoport <rppt@...nel.org>,
Linus Walleij <linus.walleij@...aro.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Changbin Du <changbin.du@...el.com>,
Linux ARM <linux-arm-kernel@...ts.infradead.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] [v2] ARM: mark prepare_page_table as __init
On Wed, 12 May 2021 at 11:01, Arnd Bergmann <arnd@...nel.org> wrote:
>
> From: Arnd Bergmann <arnd@...db.de>
>
> In some configurations when building with gcc-11, prepare_page_table
> does not get inline, which causes a build time warning for a section
> mismatch:
>
> WARNING: modpost: vmlinux.o(.text.unlikely+0xce8): Section mismatch in reference from the function prepare_page_table() to the (unknown reference) .init.data:(unknown)
> The function prepare_page_table() references
> the (unknown reference) __initdata (unknown).
> This is often because prepare_page_table lacks a __initdata
> annotation or the annotation of (unknown) is wrong.
>
> Mark the function as __init to avoid the warning regardless of the
> inlining, and remove the 'inline' keyword. The compiler is
> free to ignore the 'inline' here and it doesn't result in better
> object code or more readable source.
>
> Signed-off-by: Arnd Bergmann <arnd@...db.de>
Acked-by: Ard Biesheuvel <ardb@...nel.org>
> ---
> v2: remove 'inline', as suggested by Russell and Ard
> ---
> arch/arm/mm/mmu.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
> index 051f4f82414b..40a1fa5ec93b 100644
> --- a/arch/arm/mm/mmu.c
> +++ b/arch/arm/mm/mmu.c
> @@ -1246,7 +1246,7 @@ void __init adjust_lowmem_bounds(void)
> memblock_set_current_limit(memblock_limit);
> }
>
> -static inline void prepare_page_table(void)
> +static __init void prepare_page_table(void)
> {
> unsigned long addr;
> phys_addr_t end;
> --
> 2.29.2
>
Powered by blists - more mailing lists