summaryrefslogtreecommitdiff
path: root/arch/riscv/include/asm/set_memory.h
diff options
context:
space:
mode:
authorZong Li <zong.li@sifive.com>2020-03-10 00:55:41 +0800
committerPalmer Dabbelt <palmerdabbelt@google.com>2020-03-26 09:24:45 -0700
commitd27c3c90817e4c5ea655714065a725b4abd576f9 (patch)
tree6ab698bef5704fa108f5454047f6cf92cc196c07 /arch/riscv/include/asm/set_memory.h
parent00cb41d5ad3189f52a59f42766918557693f94fa (diff)
riscv: add STRICT_KERNEL_RWX support
The commit contains that make text section as non-writable, rodata section as read-only, and data section as non-executable. The init section should be changed to non-executable. Signed-off-by: Zong Li <zong.li@sifive.com> Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
Diffstat (limited to 'arch/riscv/include/asm/set_memory.h')
-rw-r--r--arch/riscv/include/asm/set_memory.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/riscv/include/asm/set_memory.h b/arch/riscv/include/asm/set_memory.h
index 4c5bae7ca01c..c38df4771c09 100644
--- a/arch/riscv/include/asm/set_memory.h
+++ b/arch/riscv/include/asm/set_memory.h
@@ -22,6 +22,14 @@ static inline int set_memory_x(unsigned long addr, int numpages) { return 0; }
static inline int set_memory_nx(unsigned long addr, int numpages) { return 0; }
#endif
+#ifdef CONFIG_STRICT_KERNEL_RWX
+void set_kernel_text_ro(void);
+void set_kernel_text_rw(void);
+#else
+static inline void set_kernel_text_ro(void) { }
+static inline void set_kernel_text_rw(void) { }
+#endif
+
int set_direct_map_invalid_noflush(struct page *page);
int set_direct_map_default_noflush(struct page *page);