[tip: x86/build] x86/vmlinux: Move EXCEPTION_TABLE to RO_DATA segment

tip-bot2 for Kees Cook tip-bot2 at linutronix.de
Tue Nov 5 20:27:30 AEDT 2019


The following commit has been merged into the x86/build branch of tip:

Commit-ID:     f0d7ee17d57c7a8510518a1e60366d053e2f3ff5
Gitweb:        https://git.kernel.org/tip/f0d7ee17d57c7a8510518a1e60366d053e2f3ff5
Author:        Kees Cook <keescook at chromium.org>
AuthorDate:    Tue, 29 Oct 2019 14:13:38 -07:00
Committer:     Borislav Petkov <bp at suse.de>
CommitterDate: Mon, 04 Nov 2019 17:55:02 +01:00

x86/vmlinux: Move EXCEPTION_TABLE to RO_DATA segment

The exception table was needlessly marked executable. In preparation
for execute-only memory, move the table into the RO_DATA segment via
the new macro that can be used by any architectures that want to make
a similar consolidation.

Signed-off-by: Kees Cook <keescook at chromium.org>
Signed-off-by: Borislav Petkov <bp at suse.de>
Cc: Andy Lutomirski <luto at kernel.org>
Cc: Arnd Bergmann <arnd at arndb.de>
Cc: Dave Hansen <dave.hansen at linux.intel.com>
Cc: Heiko Carstens <heiko.carstens at de.ibm.com>
Cc: "H. Peter Anvin" <hpa at zytor.com>
Cc: Ingo Molnar <mingo at redhat.com>
Cc: linux-alpha at vger.kernel.org
Cc: linux-arch at vger.kernel.org
Cc: linux-arm-kernel at lists.infradead.org
Cc: linux-c6x-dev at linux-c6x.org
Cc: linux-ia64 at vger.kernel.org
Cc: linuxppc-dev at lists.ozlabs.org
Cc: linux-s390 at vger.kernel.org
Cc: Michael Ellerman <mpe at ellerman.id.au>
Cc: Michal Simek <monstr at monstr.eu>
Cc: Rick Edgecombe <rick.p.edgecombe at intel.com>
Cc: Ross Zwisler <zwisler at chromium.org>
Cc: Segher Boessenkool <segher at kernel.crashing.org>
Cc: Thomas Gleixner <tglx at linutronix.de>
Cc: Thomas Lendacky <Thomas.Lendacky at amd.com>
Cc: Will Deacon <will at kernel.org>
Cc: x86-ml <x86 at kernel.org>
Cc: Yoshinori Sato <ysato at users.sourceforge.jp>
Link: https://lkml.kernel.org/r/20191029211351.13243-17-keescook@chromium.org
---
 arch/x86/kernel/vmlinux.lds.S | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
index a1a758e..b06d6e1 100644
--- a/arch/x86/kernel/vmlinux.lds.S
+++ b/arch/x86/kernel/vmlinux.lds.S
@@ -22,6 +22,7 @@
 #endif
 
 #define EMITS_PT_NOTE
+#define RO_EXCEPTION_TABLE_ALIGN	16
 
 #include <asm-generic/vmlinux.lds.h>
 #include <asm/asm-offsets.h>
@@ -145,8 +146,6 @@ SECTIONS
 #endif
 	} :text = 0x9090
 
-	EXCEPTION_TABLE(16)
-
 	/* End of text section, which should occupy whole number of pages */
 	_etext = .;
 	. = ALIGN(PAGE_SIZE);


More information about the Linuxppc-dev mailing list