aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/include/asm
diff options
context:
space:
mode:
authorRabin Vincent <rabin@rab.in>2014-04-24 17:28:57 -0400
committerKees Cook <keescook@chromium.org>2014-10-16 17:38:53 -0400
commitab0615e2d6fb074764a3e4d05f1326fa2fdb4627 (patch)
tree50f160291b6102404b8482c29247099eaf1e68a8 /arch/arm/include/asm
parent99b4ac9afce4129323b5b4c7002a942a9489914c (diff)
arm: use fixmap for text patching when text is RO
Use fixmaps for text patching when the kernel text is read-only, inspired by x86. This makes jump labels and kprobes work with the currently available CONFIG_DEBUG_SET_MODULE_RONX and the upcoming CONFIG_DEBUG_RODATA options. Signed-off-by: Rabin Vincent <rabin@rab.in> [kees: fixed up for merge with "arm: use generic fixmap.h"] [kees: added parse acquire/release annotations to pass C=1 builds] [kees: always use stop_machine to keep TLB flushing local] Signed-off-by: Kees Cook <keescook@chromium.org> Acked-by: Nicolas Pitre <nico@linaro.org>
Diffstat (limited to 'arch/arm/include/asm')
-rw-r--r--arch/arm/include/asm/fixmap.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm/include/asm/fixmap.h b/arch/arm/include/asm/fixmap.h
index 714606f70425..0415eae1df27 100644
--- a/arch/arm/include/asm/fixmap.h
+++ b/arch/arm/include/asm/fixmap.h
@@ -11,6 +11,10 @@ enum fixed_addresses {
11 FIX_KMAP_BEGIN, 11 FIX_KMAP_BEGIN,
12 FIX_KMAP_END = FIX_KMAP_BEGIN + (KM_TYPE_NR * NR_CPUS) - 1, 12 FIX_KMAP_END = FIX_KMAP_BEGIN + (KM_TYPE_NR * NR_CPUS) - 1,
13 13
14 /* Support writing RO kernel text via kprobes, jump labels, etc. */
15 FIX_TEXT_POKE0,
16 FIX_TEXT_POKE1,
17
14 __end_of_fixed_addresses 18 __end_of_fixed_addresses
15}; 19};
16 20