ARM: avoid cpuidle link warning
PATCH 1/1 ARM: avoid cpuidle link warning
From: Arnd Bergmann <[email protected]>
Since commit 83109d5d5fba ("x86/build: Warn on orphan section placement"), we get a warning for objects in orphan sections. The cpuidle implementation for OMAP causes this when CONFIG_CPU_IDLE is disabled:
arm-linux-gnueabi-ld: warning: orphan section __cpuidle_method_of_table' from arch/arm/mach-omap2/pm33xx-core.o' being placed in section `__cpuidle_method_of_table'
arm-linux-gnueabi-ld: warning: orphan section __cpuidle_method_of_table' from arch/arm/mach-omap2/pm33xx-core.o' being placed in section `__cpuidle_method_of_table'
arm-linux-gnueabi-ld: warning: orphan section __cpuidle_method_of_table' from arch/arm/mach-omap2/pm33xx-core.o' being placed in section `__cpuidle_method_of_table'
Change the definition of CPUIDLE_METHOD_OF_DECLARE() to silently drop the table and all code referenced from it when CONFIG_CPU_IDLE is disabled.
--- arch/arm/include/asm/cpuidle.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
arch/arm/include/asm/cpuidle.h +3 -2
@@ -7,9 +7,11 @@#ifdef CONFIG_CPU_IDLE extern int arm_cpuidle_simple_enter (struct cpuidle_device *dev,struct cpuidle_driver *drv,int index); +#define __cpuidle_method_section __used __section("__cpuidle_method_of_table")#else static inline int arm_cpuidle_simple_enter (struct cpuidle_device *dev,struct cpuidle_driver *drv,int index) {return -ENODEV ; } +#define __cpuidle_method_section __maybe_unused/* drop silently */ #endif /* Common ARM WFI state */
@@ -42,8 +44,7 @@ struct of_cpuidle_method {#define CPUIDLE_METHOD_OF_DECLARE (name, _method, _ops) \ static const struct of_cpuidle_method __cpuidle_method_of_table_##name \ - __used __section("__cpuidle_method_of_table") \ - = { .method = _method, .ops = _ops } + __cpuidle_method_section = { .method = _method, .ops = _ops }extern int arm_cpuidle_suspend (int index);
Signature · 1 line
2.29.2
Quoted 4 lines · Arnd Bergmann
Change the definition of
CPUIDLE_METHOD_OF_DECLARE()to silently drop the table and all code referenced from it whenCONFIG_CPU_IDLEis disabled.
Looks good,
Cheers,
Miguel
Quoted 4 lines · Arnd Bergmann
Change the definition of
CPUIDLE_METHOD_OF_DECLARE()to silently drop the table and all code referenced from it whenCONFIG_CPU_IDLEis disabled.
Re-Cc'ing Nick (Arnd's email had a wrong address).
Cheers,
Miguel
Quoted 1 line
Since commit
83109d5d5fba("x86/build: Warn on orphan section placement"),
Might be better to use:
commit 5a17850e251a ("arm/build: Warn on orphan section placement")
Quoted 8 lines · Nick Desaulniers
Quoted 2 lines
Since commit
83109d5d5fba("x86/build: Warn on orphan section placement"),Might be better to use:
commit5a17850e251a("arm/build: Warn on orphan section placement")Reviewed-by Nick Desaulniers <[email protected]>
Which tree were you planning on sending this through? 0day bot just pinged us again about this.
https://github.com/ClangBuiltLinux/linux/issues/1372
Signature · 2 lines
Thanks, ~Nick Desaulniers
Kees Cook
AppliedQuoted 9 lines · Arnd Bergmann
Since commit
83109d5d5fba("x86/build: Warn on orphan section placement"), we get a warning for objects in orphan sections. The cpuidle implementation for OMAP causes this whenCONFIG_CPU_IDLEis disabled:arm-linux-gnueabi-ld: warning: orphan section
__cpuidle_method_of_table' fromarch/arm/mach-omap2/pm33xx-core.o' being placed in section `__cpuidle_method_of_table'
arm-linux-gnueabi-ld: warning: orphan section__cpuidle_method_of_table' fromarch/arm/mach-omap2/pm33xx-core.o' being placed in section `__cpuidle_method_of_table'
arm-linux-gnueabi-ld: warning: orphan section__cpuidle_method_of_table' fromarch/arm/mach-omap2/pm33xx-core.o' being placed in section `__cpuidle_method_of_table'[...]
Applied to for-next/orphans, thanks!
[1/1] ARM: cpuidle: Avoid orphan section warning
https://git.kernel.org/kees/c/d94b93a91015
Signature · 1 line
Kees Cook