ACK: [SRU][G/master-next] [PATCH] UBUNTU: [Config] armhf: ARM_MODULE_PLTS=y

Colin Ian King colin.king at canonical.com
Wed Oct 14 09:25:17 UTC 2020


On 14/10/2020 10:20, Paolo Pisati wrote:
> BugLink: https://bugs.launchpad.net/bugs/1899519
> 
> [Impact]
> 
> Groovy armhf LPAE kernel fails to load kmods (and thus fail to boot):
> 
> ...
> [ 16.753306] gpio_keys: section 4 reloc 29 sym '_raw_spin_lock_irqsave': relocation 28 out of range (0xbf00f23c -> 0xc10a90ec)
> [ 22.799409] linear: section 4 reloc 43 sym '__stack_chk_fail': relocation 28 out of range (0xbf0195e8 -> 0xc10a1dd8)
> [ 23.000670] multipath: section 4 reloc 31 sym '__stack_chk_fail': relocation 28 out of range (0xbf021268 -> 0xc10a1dd8)
> [ 23.227437] raid0: section 4 reloc 53 sym '__stack_chk_fail': relocation 28 out of range (0xbf02a548 -> 0xc10a1dd8)
> [ 23.460764] raid1: section 4 reloc 18 sym '_cond_resched': relocation 28 out of range (0xbf035390 -> 0xc10a3b4c)
> ...
> 
> [Fix]
> 
> Enable CONFIG_ARM_MODULE_PLTS for armhf
> 
> [Regression potential]
> 
> Quoting the arch/arm/Kconfig:
> 
> "
> Allocate Procedure Linkage Tables when loading modules so that jumps and calls
> whose targets are too far away for their relative offsets to be encoded in the
> instructions themselves can be bounced via veneers in the module's PLT.
> 
> This allows modules to be allocated in the generic vmalloc area after the
> dedicated module memory area has been exhausted. The modules will use slightly
> more memory, but after rounding up to page size, the actual memory footprint is
> usually the same.
> 
> Disabling this [option] is usually safe for small single-platform
> configurations.
> "
> 
> Signed-off-by: Paolo Pisati <paolo.pisati at canonical.com>
> ---
>  debian.master/config/annotations          | 2 +-
>  debian.master/config/config.common.ubuntu | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/debian.master/config/annotations b/debian.master/config/annotations
> index 308aec0..c408e11 100644
> --- a/debian.master/config/annotations
> +++ b/debian.master/config/annotations
> @@ -12776,7 +12776,7 @@ CONFIG_ARM_PATCH_IDIV                           policy<{'armhf': 'y'}>
>  CONFIG_AEABI                                    policy<{'armhf': 'y'}>
>  CONFIG_OABI_COMPAT                              policy<{'armhf': 'n'}>
>  CONFIG_CPU_SW_DOMAIN_PAN                        policy<{'armhf-generic': 'y'}>
> -CONFIG_ARM_MODULE_PLTS                          policy<{'armhf': 'n'}>
> +CONFIG_ARM_MODULE_PLTS                          policy<{'armhf': 'y'}>
>  CONFIG_UACCESS_WITH_MEMCPY                      policy<{'armhf': 'n'}>
>  
>  # Menu: Processor type and features >> Architecture: arm64
> diff --git a/debian.master/config/config.common.ubuntu b/debian.master/config/config.common.ubuntu
> index 251cfb3..9f997cb 100644
> --- a/debian.master/config/config.common.ubuntu
> +++ b/debian.master/config/config.common.ubuntu
> @@ -723,7 +723,7 @@ CONFIG_ARM_L1_CACHE_SHIFT_6=y
>  CONFIG_ARM_L1_CACHE_SHIFT_7=y
>  CONFIG_ARM_MEDIATEK_CPUFREQ=m
>  CONFIG_ARM_MHU=m
> -# CONFIG_ARM_MODULE_PLTS is not set
> +CONFIG_ARM_MODULE_PLTS=y
>  CONFIG_ARM_MVEBU_V7_CPUIDLE=y
>  CONFIG_ARM_OMAP2PLUS_CPUFREQ=y
>  CONFIG_ARM_PATCH_IDIV=y
> 
makes sense, explains why we were seeing that issue occur, thanks Paolo

Acked-by: Colin Ian King <colin.king at canonical.com>



More information about the kernel-team mailing list