[PATCH 16/29] x86: Move EXCEPTION_TABLE to RO_DATA segment

From: Kees Cook
Date: Thu Sep 26 2019 - 14:05:22 EST


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

Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
---
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 a1a758e25b2b..a5c8571e4967 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_DATA_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);
--
2.17.1