Skip to contentSkip to conversation

arch/arm/Kconfig: default ARM_MODULE_PLTS to 'y'

PATCH In review Anders Roxell 2 participants 2 messages Mar 5, 2018 – Mar 23, 2018 Arm (32-bit)

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 arch/arm/Kconfig: default ARM_MODULE_PLTS to 'y'

While testing multi_v7_defconfig with config fragments that makes the kernel size to grow. The kernel fails to load simple modules, as reported by kselftest:

[   34.107620] test_printf: section 4 reloc 2 sym 'memset': relocation

28 out of range (0xbf046044 -> 0xc109f720)
selftests: printf.sh [FAIL]

The problem that is seen when enabling too much in the kernel without enabling ARM_MODULE_PLTS, is that the top of the kernel gets out of reach from the bottom of the module area.

---
 arch/arm/Kconfig | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
arch/arm/Kconfig +3 -1
index 7e3d53575486..6831f2d4ee75 100644
@@ -1701,6 +1701,7 @@ config ARCH_WANT_GENERAL_HUGETLB
 config ARM_MODULE_PLTS
 	bool "Use PLTs to allow module memory to spill over into vmalloc area"
 	depends on MODULES
+	default y
 	help
 	  Allocate PLTs when loading modules so that jumps and calls whose
 	  targets are too far away for their relative offsets to be encoded
@@ -1711,7 +1712,8 @@ config ARM_MODULE_PLTS
 	  rounding up to page size, the actual memory footprint is usually
 	  the same.
 
-	  Say y if you are getting out of memory errors while loading modules
+	  Disabling this is usually safe for small single-platform
+	  configurations. If unsure, say y.
 
 source "mm/Kconfig"
 
Signature · 1 line
2.11.0
Acked-by on v3 1/1
#1 lore raw
Quoted 8 lines · Anders Roxell

While testing multi_v7_defconfig with config fragments that makes the kernel size to grow. The kernel fails to load simple modules, as reported by kselftest:

[   34.107620] test_printf: section 4 reloc 2 sym 'memset': relocation

28 out of range (0xbf046044 -> 0xc109f720)
selftests: printf.sh [FAIL]

Quoted 6 lines

The problem that is seen when enabling too much in the kernel without enabling ARM_MODULE_PLTS, is that the top of the kernel gets out of reach from the bottom of the module area.

Quoted 34 lines
---
 arch/arm/Kconfig | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
arch/arm/Kconfig +3 -2
index 7e3d53575486..6831f2d4ee75 100644
@@ -1701,6 +1701,7 @@ config ARCH_WANT_GENERAL_HUGETLB
 config ARM_MODULE_PLTS
        bool "Use PLTs to allow module memory to spill over into vmalloc area"
        depends on MODULES
+       default y
        help
          Allocate PLTs when loading modules so that jumps and calls whose
          targets are too far away for their relative offsets to be encoded
@@ -1711,7 +1712,8 @@ config ARM_MODULE_PLTS
          rounding up to page size, the actual memory footprint is usually
          the same.
 
-         Say y if you are getting out of memory errors while loading modules
+         Disabling this is usually safe for small single-platform
+         configurations. If unsure, say y.
 
 source "mm/Kconfig"
 
--

2.11.0

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel