ARM: 8752/1: Kconfig: default ARM_MODULE_PLTS to 'y'
authorAnders Roxell <anders.roxell@linaro.org>
Mon, 26 Mar 2018 13:54:25 +0000 (14:54 +0100)
committerRussell King <rmk+kernel@armlinux.org.uk>
Sat, 19 May 2018 10:53:46 +0000 (11:53 +0100)
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.

Suggested-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
arch/arm/Kconfig

index a7f8e7f4b88fdd03ddf30870f41e7b24d5c22322..55a609e9f7977c07a818f35df4e1d146eb795b3e 100644 (file)
@@ -1704,6 +1704,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
@@ -1714,7 +1715,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"