linux/arch/arm/boot/compressed
Ard Biesheuvel e4bae4d0b5 arm/efi: Split zImage code and data into separate PE/COFF sections
To prevent unintended modifications to the kernel text (malicious or
otherwise) while running the EFI stub, describe the kernel image as
two separate sections: a .text section with read-execute permissions,
covering .text, .rodata, .piggytext and the GOT sections (which the
stub does not care about anyway), and a .data section with read-write
permissions, covering .data and .bss.

This relies on the firmware to actually take the section permission
flags into account, but this is something that is currently being
implemented in EDK2, which means we will likely start seeing it in
the wild between one and two years from now.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: http://lkml.kernel.org/r/20170818194947.19347-12-ard.biesheuvel@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2017-08-21 09:43:51 +02:00
..
.gitignore ARM: 8542/1: decompressor: merge piggy.*.S and simplify Makefile 2016-02-22 16:56:31 +00:00
atags_to_fdt.c ARM: 8025/1: Get rid of meminfo 2014-06-01 01:17:12 +01:00
big-endian.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
debug.S ARM: 7737/1: fix kernel decompressor compilation error with CONFIG_DEBUG_SEMIHOSTING 2013-06-05 23:32:24 +01:00
decompress.c bitmap: use memcmp optimisation in more situations 2017-07-10 16:32:34 -07:00
efi-header.S arm/efi: Split zImage code and data into separate PE/COFF sections 2017-08-21 09:43:51 +02:00
head-sa1100.S ARM: 7743/1: compressed/head.S: work around new binutils warning 2013-06-05 23:32:27 +01:00
head-sharpsl.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head-xscale.S ARM: remove ixp23xx and ixp2000 platforms 2012-04-06 08:26:18 -05:00
head.S ARM: 8677/1: boot/compressed: fix decompressor header layout for v7-M 2017-06-05 10:29:40 +01:00
libfdt_env.h libfdt: add fdt type definitions 2015-04-29 17:17:17 -05:00
ll_char_wr.S [ARM] Remove LOADREGS macro 2006-06-25 11:23:45 +01:00
Makefile Merge branches 'amba', 'fixes', 'misc' and 'tauros2' into for-next 2016-03-04 23:36:02 +00:00
misc.c stackprotector: Introduce CONFIG_CC_STACKPROTECTOR_STRONG 2013-12-20 09:38:40 +01:00
piggy.S ARM: 8542/1: decompressor: merge piggy.*.S and simplify Makefile 2016-02-22 16:56:31 +00:00
string.c ARM: boot: Add an implementation of strnlen for libfdt 2016-02-11 19:43:47 -06:00
vmlinux.lds.S arm/efi: Split zImage code and data into separate PE/COFF sections 2017-08-21 09:43:51 +02:00