Message ID | 20200607075949.665-1-alex@ghiti.fr (mailing list archive) |
---|---|
Headers | show |
Series | vmalloc kernel mapping and relocatable kernel | expand |
Hi Palmer, Le 6/7/20 à 3:59 AM, Alexandre Ghiti a écrit : > This patchset originally implemented relocatable kernel support but now > also moves the kernel mapping into the vmalloc zone. > > The first patch explains why we need to move the kernel into vmalloc > zone (instead of memcpying it around). That patch should ease KASLR > implementation a lot. > > The second patch allows to build relocatable kernels but is not selected > by default. > > The third and fourth patches take advantage of an already existing powerpc > script that checks relocations at compile-time, and uses it for riscv. > > Changes in v5: > * Add "static __init" to create_kernel_page_table function as reported by > Kbuild test robot > * Add reviewed-by from Zong > * Rebase onto v5.7 > > Changes in v4: > * Fix BPF region that overlapped with kernel's as suggested by Zong > * Fix end of module region that could be larger than 2GB as suggested by Zong > * Fix the size of the vm area reserved for the kernel as we could lose > PMD_SIZE if the size was already aligned on PMD_SIZE > * Split compile time relocations check patch into 2 patches as suggested by Anup > * Applied Reviewed-by from Zong and Anup > > Changes in v3: > * Move kernel mapping to vmalloc > > Changes in v2: > * Make RELOCATABLE depend on MMU as suggested by Anup > * Rename kernel_load_addr into kernel_virt_addr as suggested by Anup > * Use __pa_symbol instead of __pa, as suggested by Zong > * Rebased on top of v5.6-rc3 > * Tested with sv48 patchset > * Add Reviewed/Tested-by from Zong and Anup > > Alexandre Ghiti (4): > riscv: Move kernel mapping to vmalloc zone > riscv: Introduce CONFIG_RELOCATABLE > powerpc: Move script to check relocations at compile time in scripts/ > riscv: Check relocations at compile time > > arch/powerpc/tools/relocs_check.sh | 18 +---- > arch/riscv/Kconfig | 12 +++ > arch/riscv/Makefile | 5 +- > arch/riscv/Makefile.postlink | 36 +++++++++ > arch/riscv/boot/loader.lds.S | 3 +- > arch/riscv/include/asm/page.h | 10 ++- > arch/riscv/include/asm/pgtable.h | 38 ++++++--- > arch/riscv/kernel/head.S | 3 +- > arch/riscv/kernel/module.c | 4 +- > arch/riscv/kernel/vmlinux.lds.S | 9 ++- > arch/riscv/mm/Makefile | 4 + > arch/riscv/mm/init.c | 121 +++++++++++++++++++++++++---- > arch/riscv/mm/physaddr.c | 2 +- > arch/riscv/tools/relocs_check.sh | 26 +++++++ > scripts/relocs_check.sh | 20 +++++ > 15 files changed, 259 insertions(+), 52 deletions(-) > create mode 100644 arch/riscv/Makefile.postlink > create mode 100755 arch/riscv/tools/relocs_check.sh > create mode 100755 scripts/relocs_check.sh > Do you have any remark regarding this series ? Thanks, Alex