linux_dsm_epyc7002/arch/arm
Ard Biesheuvel 7d485f647c ARM: 8220/1: allow modules outside of bl range
Loading modules far away from the kernel in memory is problematic
because the 'bl' instruction only has limited reach, and modules are not
built with PLTs. Instead of using the -mlong-calls option (which affects
all compiler emitted bl instructions, but not the ones in assembler),
this patch allocates some additional space at module load time, and
populates it with PLT like veneers when encountering relocations that
are out of range.

This should work with all relocations against symbols exported by the
kernel, including those resulting from GCC generated implicit function
calls for ftrace etc.

The module memory size increases by about 5% on average, regardless of
whether any PLT entries were actually needed. However, due to the page
based rounding that occurs when allocating module memory, the average
memory footprint increase is negligible.

Reviewed-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2015-05-08 10:42:34 +01:00
..
boot Merge git://www.linux-watchdog.org/linux-watchdog 2015-04-22 11:22:55 -07:00
common ARM: SoC platform updates for v4.1 2015-04-22 09:08:39 -07:00
configs ARM: SoC defconfig updates for v4.1 2015-04-22 09:21:30 -07:00
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2015-04-15 10:42:15 -07:00
firmware
include ARM: 8220/1: allow modules outside of bl range 2015-05-08 10:42:34 +01:00
kernel ARM: 8220/1: allow modules outside of bl range 2015-05-08 10:42:34 +01:00
kvm This mostly includes the PPC changes for 4.1, which this time cover 2015-04-26 13:06:22 -07:00
lib ARM: ensure delay timer has sufficient accuracy for delays 2015-04-14 22:28:07 +01:00
mach-alpine ARM: alpine: add support for generic pci 2015-04-14 01:15:57 +02:00
mach-asm9260
mach-at91 Fourth batch of cleanup for 4.1: 2015-04-14 01:50:21 +02:00
mach-axxia
mach-bcm
mach-berlin
mach-clps711x
mach-cns3xxx
mach-davinci ARM: DT updates for v4.1 2015-04-22 09:09:46 -07:00
mach-digicolor
mach-dove
mach-ebsa110
mach-efm32
mach-ep93xx
mach-exynos ARM: SoC driver updates for v4.1 2015-04-22 09:18:17 -07:00
mach-footbridge
mach-gemini
mach-highbank
mach-hisi
mach-imx ARM: SoC late changes for v4.1 2015-04-22 09:24:55 -07:00
mach-integrator
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx
mach-keystone
mach-ks8695
mach-lpc32xx
mach-mediatek
mach-meson
mach-mmp
mach-moxart
mach-mv78xx0
mach-mvebu ARM: SoC platform updates for v4.1 2015-04-22 09:08:39 -07:00
mach-mxs
mach-netx
mach-nomadik
mach-nspire
mach-omap1
mach-omap2 ARM: SoC late changes for v4.1 2015-04-22 09:24:55 -07:00
mach-orion5x
mach-picoxcell
mach-prima2
mach-pxa power supply and reset changes for the v4.1 series 2015-04-13 15:21:34 -07:00
mach-qcom
mach-realview
mach-rockchip
mach-rpc
mach-s3c24xx
mach-s3c64xx ARM: SoC platform updates for v4.1 2015-04-22 09:08:39 -07:00
mach-s5pv210 ARM: 8326/1: s5pv210: move resume code to .text section 2015-03-29 23:11:58 +01:00
mach-sa1100 ARM: 8346/1: sa1100: Constify irq_domain_ops 2015-05-08 10:42:33 +01:00
mach-shmobile Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2015-04-24 09:49:37 -07:00
mach-socfpga
mach-spear
mach-sti
mach-sunxi
mach-tegra Power management and ACPI updates for v4.1-rc1 2015-04-14 20:21:54 -07:00
mach-u300
mach-ux500
mach-versatile
mach-vexpress ARM: SoC driver updates for v4.1 2015-04-22 09:18:17 -07:00
mach-vt8500
mach-w90x900
mach-zynq
mm ARM: 8353/1: mm: Fix Cortex-A8 erratum 430973 segfaults for bootloaders and multiarch 2015-05-08 10:42:33 +01:00
net
nwfpe ARM: 8322/1: keep .text and .fixup regions closer together 2015-03-29 23:11:56 +01:00
oprofile
plat-iop
plat-omap ARM, clocksource/drivers: Provide read_boot_clock64() and read_persistent_clock64() and use them 2015-04-03 08:18:23 +02:00
plat-orion
plat-pxa ARM: plat-pxa: remove use of seq_printf return value 2015-04-15 16:35:25 -07:00
plat-samsung
plat-versatile
probes
tools
vdso ARM: 8344/1: VDSO: honor CONFIG_VDSO in Makefile 2015-04-21 15:28:02 +01:00
vfp
xen
Kconfig ARM: 8220/1: allow modules outside of bl range 2015-05-08 10:42:34 +01:00
Kconfig-nommu
Kconfig.debug ARM: SoC multiplatform code changes for v4.1 2015-04-22 09:20:15 -07:00
Makefile ARM: 8220/1: allow modules outside of bl range 2015-05-08 10:42:34 +01:00