[PATCH 0/6] mm/mmap: Enable more platforms with ARCH_HAS_VM_GET_PAGE_PROT

From: Anshuman Khandual
Date: Fri Jun 03 2022 - 06:14:32 EST


>From the last discussion [1], some more platforms (s390, mips, csky, nios2,
openrisc) were willing to enable ARCH_HAS_VM_GET_PAGE_PROT and also provide
custom vm_get_page_prot() via switch case statement implementation without
any objection. All those platform specific patches have already been acked.

This series makes protection_map[] array private on platforms which define
their own vm_get_page_prot() via ARCH_HAS_VM_GET_PAGE_PROT, and also drops
off their __PXXX/__SXXX macros. This also enables new platforms as in this
series, to drop off their __PXXX/__SXXX macros as generic protection_map[]
is no longer visible to them.

[1] https://lore.kernel.org/all/1646045273-9343-2-git-send-email-anshuman.khandual@xxxxxxx/

This series applies on current mainline and also has been build tested on
multiple platforms.

Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Will Deacon <will@xxxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: Paul Mackerras <paulus@xxxxxxxxx>
Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Heiko Carstens <hca@xxxxxxxxxxxxx>
Cc: Vasily Gorbik <gor@xxxxxxxxxxxxx>
Cc: Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx>
Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Cc: Dinh Nguyen <dinguyen@xxxxxxxxxx>
Cc: Jonas Bonn <jonas@xxxxxxxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: x86@xxxxxxxxxx
Cc: openrisc@xxxxxxxxxxxxxxxxxxxx
Cc: linux-csky@xxxxxxxxxxxxxxx
Cc: linux-mips@xxxxxxxxxxxxxxx
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: linuxppc-dev@xxxxxxxxxxxxxxxx
Cc: sparclinux@xxxxxxxxxxxxxxx
Cc: linux-s390@xxxxxxxxxxxxxxx
Cc: linux-mm@xxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx

Anshuman Khandual (6):
mm/mmap: Restrict generic protection_map[] array visibility
s390/mm: Enable ARCH_HAS_VM_GET_PAGE_PROT
mips/mm: Enable ARCH_HAS_VM_GET_PAGE_PROT
csky/mm: Enable ARCH_HAS_VM_GET_PAGE_PROT
nios2/mm: Enable ARCH_HAS_VM_GET_PAGE_PROT
openrisc/mm: Enable ARCH_HAS_VM_GET_PAGE_PROT

arch/arm64/include/asm/pgtable-prot.h | 18 --------
arch/arm64/mm/mmap.c | 21 ++++++++++
arch/csky/Kconfig | 1 +
arch/csky/include/asm/pgtable.h | 18 --------
arch/csky/mm/init.c | 32 ++++++++++++++
arch/mips/Kconfig | 1 +
arch/mips/include/asm/pgtable.h | 22 ----------
arch/mips/mm/cache.c | 60 ++++++++++++++++-----------
arch/nios2/Kconfig | 1 +
arch/nios2/include/asm/pgtable.h | 24 -----------
arch/nios2/mm/init.c | 47 +++++++++++++++++++++
arch/openrisc/Kconfig | 1 +
arch/openrisc/include/asm/pgtable.h | 18 --------
arch/openrisc/mm/init.c | 41 ++++++++++++++++++
arch/powerpc/include/asm/pgtable.h | 2 +
arch/powerpc/mm/book3s64/pgtable.c | 20 +++++++++
arch/s390/Kconfig | 1 +
arch/s390/include/asm/pgtable.h | 17 --------
arch/s390/mm/mmap.c | 33 +++++++++++++++
arch/sparc/include/asm/pgtable_32.h | 2 +
arch/sparc/include/asm/pgtable_64.h | 19 ---------
arch/sparc/mm/init_64.c | 20 +++++++++
arch/x86/include/asm/pgtable_types.h | 19 ---------
arch/x86/mm/pgprot.c | 19 +++++++++
include/linux/mm.h | 2 +
mm/mmap.c | 2 +-
26 files changed, 280 insertions(+), 181 deletions(-)

--
2.25.1