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