linux/arch/arm
Kees Cook 6a9af90a3b arm: move ELF_ET_DYN_BASE to 4MB
Now that explicitly executed loaders are loaded in the mmap region, we
have more freedom to decide where we position PIE binaries in the
address space to avoid possible collisions with mmap or stack regions.

4MB is chosen here mainly to have parity with x86, where this is the
traditional minimum load location, likely to avoid historically
requiring a 4MB page table entry when only a portion of the first 4MB
would be used (since the NULL address is avoided).

For ARM the position could be 0x8000, the standard ET_EXEC load address,
but that is needlessly close to the NULL address, and anyone running PIE
on 32-bit ARM will have an MMU, so the tight mapping is not needed.

Link: http://lkml.kernel.org/r/1498154792-49952-2-git-send-email-keescook@chromium.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: James Hogan <james.hogan@imgtec.com>
Cc: Pratyush Anand <panand@redhat.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Daniel Micay <danielmicay@gmail.com>
Cc: Dmitry Safonov <dsafonov@virtuozzo.com>
Cc: Grzegorz Andrejczuk <grzegorz.andrejczuk@intel.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Qualys Security Advisory <qsa@qualys.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2017-07-10 16:32:36 -07:00
..
boot bitmap: use memcmp optimisation in more situations 2017-07-10 16:32:34 -07:00
common arm: implement ->dma_supported instead of ->set_dma_mask 2017-06-28 06:54:49 -07:00
configs This is the big bulk of pin control changes for the v4.13 series: 2017-07-06 11:38:59 -07:00
crypto crypto: arm/crc32 - enable module autoloading based on CPU feature bits 2017-06-01 12:55:42 +08:00
firmware
include arm: move ELF_ET_DYN_BASE to 4MB 2017-07-10 16:32:36 -07:00
kernel ARM: fix rd_size declaration 2017-07-10 16:32:34 -07:00
kvm Merge branch 'kvmarm-master/master' into HEAD 2017-06-15 09:35:15 +01:00
lib
mach-actions ARM: owl: smp: Drop bogus holding pen 2017-07-03 14:31:47 +02:00
mach-alpine
mach-artpec
mach-asm9260
mach-aspeed clocksource/drivers/fttmr010: Merge Moxa into FTTMR010 2017-06-12 10:45:10 +02:00
mach-at91 Fixes for 4.12: 2017-06-18 23:12:36 -07:00
mach-axxia
mach-bcm ARM: SoC platform updates 2017-07-04 14:34:51 -07:00
mach-berlin
mach-clps711x clocksource/drivers: Rename CLKSRC_OF to TIMER_OF 2017-06-14 12:01:03 +02:00
mach-cns3xxx ARM: remove duplicate 'const' annotations' 2017-05-19 10:12:55 +02:00
mach-davinci This is the bulk of GPIO changes for the v4.13 series: 2017-07-07 12:40:27 -07:00
mach-digicolor
mach-dove ARM/PCI: Convert PCI scan API to pci_scan_root_bus_bridge() 2017-06-28 15:13:55 -05:00
mach-ebsa110
mach-efm32
mach-ep93xx
mach-exynos
mach-footbridge
mach-gemini
mach-highbank
mach-hisi
mach-imx ARM: imx6ull: Make suspend/resume work like on 6ul 2017-06-07 11:38:40 +08:00
mach-integrator
mach-iop13xx ARM/PCI: Convert PCI scan API to pci_scan_root_bus_bridge() 2017-06-28 15:13:55 -05:00
mach-iop32x
mach-iop33x
mach-ixp4xx scripts/spelling.txt: add regsiter -> register spelling mistake 2017-05-08 17:15:13 -07:00
mach-keystone
mach-ks8695
mach-lpc18xx
mach-lpc32xx ARM/dmaengine: pl08x: pass reasonable memcpy settings 2017-05-24 09:44:32 +05:30
mach-mediatek clocksource/drivers: Rename clocksource_probe to timer_probe 2017-06-14 11:59:16 +02:00
mach-meson arm: meson: select the clock controller for Meson8 2017-06-09 11:15:36 -07:00
mach-mmp
mach-moxart clocksource/drivers/fttmr010: Merge Moxa into FTTMR010 2017-06-12 10:45:10 +02:00
mach-mv78xx0 ARM/PCI: Convert PCI scan API to pci_scan_root_bus_bridge() 2017-06-28 15:13:55 -05:00
mach-mvebu
mach-mxs
mach-netx
mach-nomadik
mach-nspire
mach-omap1 ARM: OMAP1: Fix a typo in a comment line 2017-06-06 23:54:13 -07:00
mach-omap2 ARM: SoC platform updates 2017-07-04 14:34:51 -07:00
mach-orion5x ARM/PCI: Convert PCI scan API to pci_scan_root_bus_bridge() 2017-06-28 15:13:55 -05:00
mach-oxnas
mach-picoxcell
mach-prima2 ARM: prima2: remove redundant select CPU_V7 2017-06-18 19:13:47 -07:00
mach-pxa This is the bulk of GPIO changes for the v4.13 series: 2017-07-07 12:40:27 -07:00
mach-qcom
mach-realview
mach-rockchip ARM: SoC platform updates 2017-07-04 14:34:51 -07:00
mach-rpc arm: mach-rpc: ecard: fix build error 2017-06-14 11:54:29 +02:00
mach-s3c24xx clocksource/drivers: Rename CLKSRC_OF to TIMER_OF 2017-06-14 12:01:03 +02:00
mach-s3c64xx dmaengine updates for 4.13-rc1 2017-07-08 12:36:50 -07:00
mach-s5pv210
mach-sa1100
mach-shmobile ARM: SoC platform updates 2017-07-04 14:34:51 -07:00
mach-socfpga
mach-spear dmaengine updates for 4.13-rc1 2017-07-08 12:36:50 -07:00
mach-sti
mach-stm32 ARM: stm32: Introduce MACH_STM32F469 flag 2017-06-18 20:10:27 -07:00
mach-sunxi clocksource/drivers: Rename clocksource_probe to timer_probe 2017-06-14 11:59:16 +02:00
mach-tango
mach-tegra
mach-u300 clocksource/drivers: Rename clocksource_probe to timer_probe 2017-06-14 11:59:16 +02:00
mach-uniphier
mach-ux500
mach-versatile
mach-vexpress
mach-vt8500
mach-w90x900
mach-zx
mach-zynq clocksource/drivers: Rename clocksource_probe to timer_probe 2017-06-14 11:59:16 +02:00
mm Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2017-07-08 12:17:25 -07:00
net arm: use set_memory.h header 2017-05-08 17:15:13 -07:00
nwfpe
oprofile
plat-iop
plat-omap
plat-orion
plat-pxa
plat-samsung
plat-versatile
probes arm: Prevent hotplug rwsem recursion 2017-05-26 10:10:46 +02:00
tools
vdso
vfp
xen This is the first pull request for the new dma-mapping subsystem 2017-07-06 19:20:54 -07:00
Kconfig Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2017-07-08 12:17:25 -07:00
Kconfig-nommu
Kconfig.debug SoC for 4.13: 2017-06-18 22:53:20 -07:00
Makefile ARM: Prepare Actions Semi S500 2017-06-21 18:08:41 +02:00