Messages in this thread | | | From | Zong Li <> | Date | Wed, 1 Apr 2020 15:18:52 +0800 | Subject | Re: [PATCH v3 0/9] Support strict kernel memory permissions for security |
| |
On Tue, Mar 31, 2020 at 9:32 PM Masami Hiramatsu <mhiramat@kernel.org> wrote: > > Hi Zong, > > On Tue, 10 Mar 2020 00:55:35 +0800 > Zong Li <zong.li@sifive.com> wrote: > > > The main purpose of this patch series is changing the kernel mapping permission > > , make sure that code is not writeable, data is not executable, and read-only > > data is neither writable nor executable. > > > > This patch series also supports the relevant implementations such as > > ARCH_HAS_SET_MEMORY, ARCH_HAS_SET_DIRECT_MAP, > > ARCH_SUPPORTS_DEBUG_PAGEALLOC and DEBUG_WX. > > The order of the patches seems a bit strange. Since the first 7 patches > makes kernel read-only, at that point ftrace is broken and it is fixed > by the last 2 patches. That is not bisect-friendly. Can you move the > last 2 patches to the top? >
OK. Let me rearrange the order. Thanks.
> Thank you, > > > > > Changes in v3: > > - Fix build error on nommu configuration. We already support nommu on > > RISC-V, so we should consider nommu case and test not only rv32/64, > > but also nommu. > > > > Changes in v2: > > - Use _data to specify the start of data section with write permission. > > - Change ftrace patch text implementaion. > > - Separate DEBUG_WX patch to another patchset. > > > > Zong Li (9): > > riscv: add ARCH_HAS_SET_MEMORY support > > riscv: add ARCH_HAS_SET_DIRECT_MAP support > > riscv: add ARCH_SUPPORTS_DEBUG_PAGEALLOC support > > riscv: move exception table immediately after RO_DATA > > riscv: add alignment for text, rodata and data sections > > riscv: add STRICT_KERNEL_RWX support > > riscv: add macro to get instruction length > > riscv: introduce interfaces to patch kernel code > > riscv: patch code by fixmap mapping > > > > arch/riscv/Kconfig | 6 + > > arch/riscv/include/asm/bug.h | 8 ++ > > arch/riscv/include/asm/fixmap.h | 2 + > > arch/riscv/include/asm/patch.h | 12 ++ > > arch/riscv/include/asm/set_memory.h | 48 +++++++ > > arch/riscv/kernel/Makefile | 4 +- > > arch/riscv/kernel/ftrace.c | 13 +- > > arch/riscv/kernel/patch.c | 120 ++++++++++++++++++ > > arch/riscv/kernel/traps.c | 3 +- > > arch/riscv/kernel/vmlinux.lds.S | 11 +- > > arch/riscv/mm/Makefile | 2 +- > > arch/riscv/mm/init.c | 44 +++++++ > > arch/riscv/mm/pageattr.c | 187 ++++++++++++++++++++++++++++ > > 13 files changed, 445 insertions(+), 15 deletions(-) > > create mode 100644 arch/riscv/include/asm/patch.h > > create mode 100644 arch/riscv/include/asm/set_memory.h > > create mode 100644 arch/riscv/kernel/patch.c > > create mode 100644 arch/riscv/mm/pageattr.c > > > > -- > > 2.25.1 > > > > > -- > Masami Hiramatsu <mhiramat@kernel.org>
| |