ARM: mark prepare_page_table as __init
PATCH v2 1/1 ARM: mark prepare_page_table as __init
From: Arnd Bergmann <[email protected]>
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.
---
v2: remove 'inline', as suggested by Russell and Ard
--- arch/arm/mm/mmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/mm/mmu.c +1 -1
@@ -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;
Signature · 1 line
2.29.2
Quoted 13 lines · Arnd Bergmann
From: Arnd Bergmann <[email protected]>
In some configurations when building with gcc-11,
prepare_page_tabledoes 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 functionprepare_page_table()to the (unknown reference) .init.data:(unknown) The functionprepare_page_table()references
the (unknown reference)__initdata(unknown).
This is often becauseprepare_page_tablelacks a__initdata
annotation or the annotation of (unknown) is wrong.
Quoted 6 lines
Mark the function as
__initto 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 <[email protected]>
Quoted 22 lines
---
v2: remove 'inline', as suggested by Russell and Ard--- arch/arm/mm/mmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)arch/arm/mm/mmu.c +1
-2@@ -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
Quoted 12 lines · Arnd Bergmann
From: Arnd Bergmann <[email protected]>
In some configurations when building with gcc-11,
prepare_page_tabledoes 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 functionprepare_page_table()to the (unknown reference) .init.data:(unknown) The functionprepare_page_table()references
the (unknown reference)__initdata(unknown).
This is often becauseprepare_page_tablelacks a__initdata
annotation or the annotation of (unknown) is wrong.
Quoted 8 lines
Mark the function as
__initto 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 <[email protected]>---
v2: remove 'inline', as suggested by Russell and Ard
Yours,
Linus Walleij