[PATCH v3 00/10] Convert powerpc to default topdown mmap layout

From: Christophe Leroy
Date: Mon Nov 29 2021 - 09:35:55 EST


Rebased on top of Nic's v5 series "powerpc: Make hash MMU code build configurable"

This series converts powerpc to default topdown mmap layout.

powerpc provides its own arch_get_unmapped_area() only when
slices are needed, which is only for book3s/64. First part of
the series moves slices into book3s/64 specific directories
and cleans up other subarchitectures.

Then a small modification is done to core mm to allow
powerpc to still provide its own arch_randomize_brk()

Last part converts to default topdown mmap layout.

Changes in v3:
- Fixed missing <linux/elf-randomize.h> in last patch
- Added a patch to move SZ_1T out of drivers/pci/controller/pci-xgene.c

Changes in v2:
- Moved patch 4 before patch 2
- Make generic arch_randomize_brk() __weak
- Added patch 9

Christophe Leroy (10):
powerpc/mm: Make slice specific to book3s/64
powerpc/mm: Move vma_mmu_pagesize() and hugetlb_get_unmapped_area() to
slice.c
powerpc/mm: Remove CONFIG_PPC_MM_SLICES
powerpc/mm: Remove asm/slice.h
powerpc/mm: Call radix__arch_get_unmapped_area() from
arch_get_unmapped_area()
mm: Allow arch specific arch_randomize_brk() with
CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT
powerpc/mm: Convert to default topdown mmap layout
powerpc/mm: Properly randomise mmap with slices
sizes.h: Add SZ_1T macro
powerpc: Simplify and move arch_randomize_brk()

arch/powerpc/Kconfig | 2 +-
arch/powerpc/include/asm/book3s/64/hash.h | 7 +-
arch/powerpc/include/asm/book3s/64/hugetlb.h | 4 -
arch/powerpc/include/asm/book3s/64/mmu-hash.h | 1 +
arch/powerpc/include/asm/book3s/64/slice.h | 18 ++
arch/powerpc/include/asm/hugetlb.h | 2 +-
arch/powerpc/include/asm/paca.h | 7 -
arch/powerpc/include/asm/page.h | 1 -
arch/powerpc/include/asm/processor.h | 2 -
arch/powerpc/include/asm/slice.h | 46 ----
arch/powerpc/kernel/paca.c | 5 -
arch/powerpc/kernel/process.c | 41 ----
arch/powerpc/mm/Makefile | 3 +-
arch/powerpc/mm/book3s64/Makefile | 2 +-
arch/powerpc/mm/book3s64/hash_utils.c | 33 +--
arch/powerpc/mm/book3s64/radix_hugetlbpage.c | 55 -----
arch/powerpc/mm/{ => book3s64}/slice.c | 200 ++++++++++++++-
arch/powerpc/mm/hugetlbpage.c | 28 ---
arch/powerpc/mm/mmap.c | 228 ------------------
arch/powerpc/mm/nohash/mmu_context.c | 9 -
arch/powerpc/mm/nohash/tlb.c | 4 -
arch/powerpc/platforms/Kconfig.cputype | 4 -
drivers/pci/controller/pci-xgene.c | 1 -
include/linux/sizes.h | 2 +
mm/util.c | 2 +-
25 files changed, 237 insertions(+), 470 deletions(-)
delete mode 100644 arch/powerpc/include/asm/slice.h
rename arch/powerpc/mm/{ => book3s64}/slice.c (80%)
delete mode 100644 arch/powerpc/mm/mmap.c

--
2.33.1