[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20201026230254.911912-1-atish.patra@wdc.com>
Date: Mon, 26 Oct 2020 16:02:48 -0700
From: Atish Patra <atish.patra@....com>
To: linux-kernel@...r.kernel.org
Cc: Atish Patra <atish.patra@....com>,
Albert Ou <aou@...s.berkeley.edu>,
Andrew Morton <akpm@...ux-foundation.org>,
Anup Patel <anup@...infault.org>,
Ard Biesheuvel <ardb@...nel.org>, Borislav Petkov <bp@...e.de>,
Greentime Hu <greentime.hu@...ive.com>,
Kees Cook <keescook@...omium.org>,
linux-riscv@...ts.infradead.org,
Michel Lespinasse <walken@...gle.com>,
Mike Rapoport <rppt@...nel.org>,
Palmer Dabbelt <palmer@...belt.com>,
Paul Walmsley <paul.walmsley@...ive.com>,
Zong Li <zong.li@...ive.com>
Subject: [PATCH v2 0/6] Improve kernel section protections
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
Powered by blists - more mailing lists