[PATCH v3 0/5] Move {idmap_pg_dir,swapper_pg_dir} to .rodata

From: Jun Yao
Date: Mon Jul 02 2018 - 07:17:31 EST


Version 3 changes:
As James Morse suggested[1], we split the old patch into 5
patches:

1. Introduce init_pg_dir.
2. Make __enable_mmu() take the ttbr1 page as an argument.
3. Create initial page tables in init_pg_dir and then create final
page tables in swapper_pg_dir directly.
4. Make swapper_pg_dir smaller.
5. Move {idmap_pg_dir, swapper_pg_dir} to .rodata section.

At the same time, fix bugs mentioned in [1] and [2].

Special thanks to James Morse and Suzuki K Poulose. Without their help, I
couldn't write these patches.

v2: https://patchwork.kernel.org/patch/10485641/
v1: https://patchwork.kernel.org/patch/10476595/

[1] https://patchwork.kernel.org/patch/10485641/
[2] https://patchwork.kernel.org/patch/10485643/

Jun Yao (5):
arm64/mm: Introduce init_pg_dir
arm64/mm: Make __enable_mmu() take the ttbr1 page as an argument
arm64/mm: Create initial page tables in init_pg_dir
arm64/mm: Make swapper_pg_dir smaller
arm64/mm: Move {idmap_pg_dir, swapper_pg_dir} to .rodata section

arch/arm64/include/asm/assembler.h | 23 ++++++++++++++
arch/arm64/include/asm/pgalloc.h | 48 ++++++++++++++++++++++++++++++
arch/arm64/include/asm/pgtable.h | 17 ++++++-----
arch/arm64/kernel/head.S | 31 ++++++++++++++-----
arch/arm64/kernel/setup.c | 1 +
arch/arm64/kernel/sleep.S | 1 +
arch/arm64/kernel/vmlinux.lds.S | 29 ++++++++++++------
arch/arm64/mm/mmu.c | 32 +++-----------------
8 files changed, 129 insertions(+), 53 deletions(-)

--
2.17.1