[PATCH RFC 0/8] Support KASLR for RISC-V

From: Zong Li
Date: Tue Mar 24 2020 - 03:30:59 EST


This patch series implement KASLR for RISC-V. It copies kernel image to
a proper and random place, and make all harts go to the new destination.

This patch depends on the patch 'riscv: Introduce CONFIG_RELOCATABLE',
but given a small change by making PAGE_OFFSET be constant, so all the
memory could be available after moving kernel physical address. This
patch also depends on 'Support strict kernel memory permissions for security'.

Zong Li (8):
riscv/kaslr: add interface to get kaslr offset
riscv/kaslr: introduce functions to clear page table
riscv/kaslr: support KASLR infrastructure
riscv/kaslr: randomize the kernel image offset
riscv/kaslr: support sparse memory model
riscv/kaslr: clear the original kernel image
riscv/kaslr: add cmdline support to disable KASLR
riscv/kaslr: dump out kernel offset information on panic

arch/riscv/Kconfig | 15 ++
arch/riscv/include/asm/kaslr.h | 12 +
arch/riscv/include/asm/page.h | 5 +
arch/riscv/kernel/Makefile | 2 +
arch/riscv/kernel/head.S | 39 +++
arch/riscv/kernel/kaslr.c | 442 +++++++++++++++++++++++++++++++++
arch/riscv/kernel/setup.c | 23 ++
arch/riscv/mm/init.c | 115 ++++++++-
8 files changed, 651 insertions(+), 2 deletions(-)
create mode 100644 arch/riscv/include/asm/kaslr.h
create mode 100644 arch/riscv/kernel/kaslr.c

--
2.25.1