This series aims at improving kernel permissions by doing following things.
1. Protect kernel sections early instead of after /init. 2. Protect .init.text & .init.data sections with appropriate permissions. 3. Move dynamic relocation section to _init. 4. Moved .init sections after .text. This is what most of the other archs are also doing. After applying this patch, here are the linear mapped sections. ---[ Linear mapping ]--- 0xffffffe000000000-0xffffffe000800000 0x0000000080200000 8M PMD D A . . X . R V 0xffffffe000800000-0xffffffe000c00000 0x0000000080a00000 4M PMD D A . . . W R V 0xffffffe000c00000-0xffffffe001200000 0x0000000080e00000 6M PMD D A . . . . R V 0xffffffe001200000-0xffffffe03fe00000 0x0000000081400000 1004M PMD D A . . . W R V Changes from v1->v2: 1. .init.text section is aligned with SECTION_ALIGN. 2. .init.text is moved to below of .text so that .head.text & .text are in one section. 3. We don't need Guo's fix for static object issue. 4. Rebased on 5.10-rc1. Atish Patra (6): RISC-V: Move __start_kernel to .head.text RISC-V: Initialize SBI early RISC-V: Enforce protections for kernel sections early RISC-V: Align the .init.text section RISC-V: Protect .init.text & .init.data RISC-V: Move dynamic relocation section under __init arch/riscv/include/asm/sections.h | 2 + arch/riscv/include/asm/set_memory.h | 4 ++ arch/riscv/kernel/head.S | 1 - arch/riscv/kernel/setup.c | 18 +++++++-- arch/riscv/kernel/vmlinux.lds.S | 63 +++++++++++++++++------------ arch/riscv/mm/init.c | 19 +++++++-- arch/riscv/mm/pageattr.c | 6 +++ 7 files changed, 79 insertions(+), 34 deletions(-) -- 2.25.1

