[SRU][G/master-next] [PATCH] UBUNTU: [Config] armhf: ARM_MODULE_PLTS=y
Paolo Pisati
paolo.pisati at canonical.com
Wed Oct 14 09:20:50 UTC 2020
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
--
2.7.4
More information about the kernel-team
mailing list