summaryrefslogtreecommitdiff
path: root/arch/arm64/kernel
diff options
context:
space:
mode:
authorJeremy Linton <jeremy.linton@arm.com>2016-02-19 11:50:32 -0600
committerSami Tolvanen <samitolvanen@google.com>2016-10-05 08:09:05 -0700
commit1a6c07cf6f2671e1a8a561745bdcc295a7cfeb17 (patch)
tree90c7abbe06f10299689b14298dd6b8a1ddda03a7 /arch/arm64/kernel
parent8fd31d5a2c06726a6060ea355bb5c90d44b132c4 (diff)
BACKPORT: arm64: mm: Mark .rodata as RO
Currently the .rodata section is actually still executable when DEBUG_RODATA is enabled. This changes that so the .rodata is actually read only, no execute. It also adds the .rodata section to the mem_init banner. Signed-off-by: Jeremy Linton <jeremy.linton@arm.com> Reviewed-by: Kees Cook <keescook@chromium.org> Acked-by: Mark Rutland <mark.rutland@arm.com> [catalin.marinas@arm.com: added vm_struct vmlinux_rodata in map_kernel()] Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Bug: 31374226 Change-Id: I6fd95beaf814fc91805da12c5329a57ce9008fd7 (cherry picked from commit 2f39b5f91eb4bccd786d194e70db1dccad784755) Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Diffstat (limited to 'arch/arm64/kernel')
-rw-r--r--arch/arm64/kernel/vmlinux.lds.S6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/arm64/kernel/vmlinux.lds.S b/arch/arm64/kernel/vmlinux.lds.S
index 87fd0556a1bd..f1d6c49dcc5f 100644
--- a/arch/arm64/kernel/vmlinux.lds.S
+++ b/arch/arm64/kernel/vmlinux.lds.S
@@ -114,14 +114,14 @@ SECTIONS
*(.got) /* Global offset table */
}
+ ALIGN_DEBUG_RO_MIN(PAGE_SIZE)
_etext = .; /* End of text section */
- RO_DATA(PAGE_SIZE)
- EXCEPTION_TABLE(8)
+ RO_DATA(PAGE_SIZE) /* everything from this point to */
+ EXCEPTION_TABLE(8) /* __init_begin will be marked RO NX */
NOTES
ALIGN_DEBUG_RO_MIN(PAGE_SIZE)
- _etext = .; /* End of text and rodata section */
__init_begin = .;
INIT_TEXT_SECTION(8)