Message ID | 20220624044339.1533882-27-anshuman.khandual@arm.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm/mmap: Drop __SXXX/__PXXX macros from across platforms | expand |
Looks good:
Reviewed-by: Christoph Hellwig <hch@lst.de>
Le 24/06/2022 à 06:43, Anshuman Khandual a écrit : > Now all the platforms enable ARCH_HAS_GET_PAGE_PROT. They define and export > own vm_get_page_prot() whether custom or standard DECLARE_VM_GET_PAGE_PROT. > Hence there is no need for default generic fallback for vm_get_page_prot(). > Just drop this fallback and also ARCH_HAS_GET_PAGE_PROT mechanism. > > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: linux-mm@kvack.org > Cc: linux-kernel@vger.kernel.org > Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> > --- > arch/alpha/Kconfig | 1 - > arch/arc/Kconfig | 1 - > arch/arm/Kconfig | 1 - > arch/arm64/Kconfig | 1 - > arch/csky/Kconfig | 1 - > arch/hexagon/Kconfig | 1 - > arch/ia64/Kconfig | 1 - > arch/loongarch/Kconfig | 1 - > arch/m68k/Kconfig | 1 - > arch/microblaze/Kconfig | 1 - > arch/mips/Kconfig | 1 - > arch/nios2/Kconfig | 1 - > arch/openrisc/Kconfig | 1 - > arch/parisc/Kconfig | 1 - > arch/powerpc/Kconfig | 1 - > arch/riscv/Kconfig | 1 - > arch/s390/Kconfig | 1 - > arch/sh/Kconfig | 1 - > arch/sparc/Kconfig | 1 - > arch/um/Kconfig | 1 - > arch/x86/Kconfig | 1 - > arch/xtensa/Kconfig | 1 - > include/linux/mm.h | 3 --- > mm/Kconfig | 3 --- > mm/mmap.c | 22 ---------------------- > 25 files changed, 50 deletions(-) > > diff --git a/mm/mmap.c b/mm/mmap.c > index 43db3bd49071..3557fe83d124 100644 > --- a/mm/mmap.c > +++ b/mm/mmap.c > @@ -101,28 +101,6 @@ static void unmap_region(struct mm_struct *mm, > * w: (no) no > * x: (yes) yes > */ The above comment is not orphaned. I think it should go in linux/mm.h > -#ifndef CONFIG_ARCH_HAS_VM_GET_PAGE_PROT > -pgprot_t protection_map[16] __ro_after_init = { > - [VM_NONE] = __P000, > - [VM_READ] = __P001, > - [VM_WRITE] = __P010, > - [VM_WRITE | VM_READ] = __P011, > - [VM_EXEC] = __P100, > - [VM_EXEC | VM_READ] = __P101, > - [VM_EXEC | VM_WRITE] = __P110, > - [VM_EXEC | VM_WRITE | VM_READ] = __P111, > - [VM_SHARED] = __S000, > - [VM_SHARED | VM_READ] = __S001, > - [VM_SHARED | VM_WRITE] = __S010, > - [VM_SHARED | VM_WRITE | VM_READ] = __S011, > - [VM_SHARED | VM_EXEC] = __S100, > - [VM_SHARED | VM_EXEC | VM_READ] = __S101, > - [VM_SHARED | VM_EXEC | VM_WRITE] = __S110, > - [VM_SHARED | VM_EXEC | VM_WRITE | VM_READ] = __S111 > -}; > -DECLARE_VM_GET_PAGE_PROT > -#endif /* CONFIG_ARCH_HAS_VM_GET_PAGE_PROT */ > - > static pgprot_t vm_pgprot_modify(pgprot_t oldprot, unsigned long vm_flags) > { > return pgprot_modify(oldprot, vm_get_page_prot(vm_flags));
Le 24/06/2022 à 06:43, Anshuman Khandual a écrit : > Now all the platforms enable ARCH_HAS_GET_PAGE_PROT. They define and export > own vm_get_page_prot() whether custom or standard DECLARE_VM_GET_PAGE_PROT. > Hence there is no need for default generic fallback for vm_get_page_prot(). > Just drop this fallback and also ARCH_HAS_GET_PAGE_PROT mechanism. > > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: linux-mm@kvack.org > Cc: linux-kernel@vger.kernel.org > Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu> > --- > arch/alpha/Kconfig | 1 - > arch/arc/Kconfig | 1 - > arch/arm/Kconfig | 1 - > arch/arm64/Kconfig | 1 - > arch/csky/Kconfig | 1 - > arch/hexagon/Kconfig | 1 - > arch/ia64/Kconfig | 1 - > arch/loongarch/Kconfig | 1 - > arch/m68k/Kconfig | 1 - > arch/microblaze/Kconfig | 1 - > arch/mips/Kconfig | 1 - > arch/nios2/Kconfig | 1 - > arch/openrisc/Kconfig | 1 - > arch/parisc/Kconfig | 1 - > arch/powerpc/Kconfig | 1 - > arch/riscv/Kconfig | 1 - > arch/s390/Kconfig | 1 - > arch/sh/Kconfig | 1 - > arch/sparc/Kconfig | 1 - > arch/um/Kconfig | 1 - > arch/x86/Kconfig | 1 - > arch/xtensa/Kconfig | 1 - > include/linux/mm.h | 3 --- > mm/Kconfig | 3 --- > mm/mmap.c | 22 ---------------------- > 25 files changed, 50 deletions(-) > > diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig > index db1c8b329461..7d0d26b5b3f5 100644 > --- a/arch/alpha/Kconfig > +++ b/arch/alpha/Kconfig > @@ -2,7 +2,6 @@ > config ALPHA > bool > default y > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_32BIT_USTAT_F_TINODE > select ARCH_MIGHT_HAVE_PC_PARPORT > select ARCH_MIGHT_HAVE_PC_SERIO > diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig > index 8be56a5d8a9b..9e3653253ef2 100644 > --- a/arch/arc/Kconfig > +++ b/arch/arc/Kconfig > @@ -13,7 +13,6 @@ config ARC > select ARCH_HAS_SETUP_DMA_OPS > select ARCH_HAS_SYNC_DMA_FOR_CPU > select ARCH_HAS_SYNC_DMA_FOR_DEVICE > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_SUPPORTS_ATOMIC_RMW if ARC_HAS_LLSC > select ARCH_32BIT_OFF_T > select BUILDTIME_TABLE_SORT > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index e153b6d4fc5b..7630ba9cb6cc 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -24,7 +24,6 @@ config ARM > select ARCH_HAS_SYNC_DMA_FOR_CPU if SWIOTLB || !MMU > select ARCH_HAS_TEARDOWN_DMA_OPS if MMU > select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_HAVE_CUSTOM_GPIO_H > select ARCH_HAVE_NMI_SAFE_CMPXCHG if CPU_V7 || CPU_V7M || CPU_V6K > select ARCH_HAS_GCOV_PROFILE_ALL > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index 1652a9800ebe..7030bf3f8d6f 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -45,7 +45,6 @@ config ARM64 > select ARCH_HAS_SYSCALL_WRAPPER > select ARCH_HAS_TEARDOWN_DMA_OPS if IOMMU_SUPPORT > select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_HAS_ZONE_DMA_SET if EXPERT > select ARCH_HAVE_ELF_PROT > select ARCH_HAVE_NMI_SAFE_CMPXCHG > diff --git a/arch/csky/Kconfig b/arch/csky/Kconfig > index 588b8a9c68ed..21d72b078eef 100644 > --- a/arch/csky/Kconfig > +++ b/arch/csky/Kconfig > @@ -6,7 +6,6 @@ config CSKY > select ARCH_HAS_GCOV_PROFILE_ALL > select ARCH_HAS_SYNC_DMA_FOR_CPU > select ARCH_HAS_SYNC_DMA_FOR_DEVICE > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_USE_BUILTIN_BSWAP > select ARCH_USE_QUEUED_RWLOCKS > select ARCH_WANT_FRAME_POINTERS if !CPU_CK610 && $(cc-option,-mbacktrace) > diff --git a/arch/hexagon/Kconfig b/arch/hexagon/Kconfig > index bc4ceecd0588..54eadf265178 100644 > --- a/arch/hexagon/Kconfig > +++ b/arch/hexagon/Kconfig > @@ -6,7 +6,6 @@ config HEXAGON > def_bool y > select ARCH_32BIT_OFF_T > select ARCH_HAS_SYNC_DMA_FOR_DEVICE > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_NO_PREEMPT > select DMA_GLOBAL_POOL > # Other pending projects/to-do items. > diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig > index 0510a5737711..cb93769a9f2a 100644 > --- a/arch/ia64/Kconfig > +++ b/arch/ia64/Kconfig > @@ -12,7 +12,6 @@ config IA64 > select ARCH_HAS_DMA_MARK_CLEAN > select ARCH_HAS_STRNCPY_FROM_USER > select ARCH_HAS_STRNLEN_USER > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_MIGHT_HAVE_PC_PARPORT > select ARCH_MIGHT_HAVE_PC_SERIO > select ACPI > diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig > index fd07b8e760ee..1920d52653b4 100644 > --- a/arch/loongarch/Kconfig > +++ b/arch/loongarch/Kconfig > @@ -9,7 +9,6 @@ config LOONGARCH > select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI > select ARCH_HAS_PHYS_TO_DMA > select ARCH_HAS_PTE_SPECIAL > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST > select ARCH_INLINE_READ_LOCK if !PREEMPTION > select ARCH_INLINE_READ_LOCK_BH if !PREEMPTION > diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig > index 49aa0cf13e96..936cce42ae9a 100644 > --- a/arch/m68k/Kconfig > +++ b/arch/m68k/Kconfig > @@ -7,7 +7,6 @@ config M68K > select ARCH_HAS_CURRENT_STACK_POINTER > select ARCH_HAS_DMA_PREP_COHERENT if HAS_DMA && MMU && !COLDFIRE > select ARCH_HAS_SYNC_DMA_FOR_DEVICE if HAS_DMA > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_HAVE_NMI_SAFE_CMPXCHG if RMW_INSNS > select ARCH_MIGHT_HAVE_PC_PARPORT if ISA > select ARCH_NO_PREEMPT if !COLDFIRE > diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig > index 15f91ba8a0c4..8cf429ad1c84 100644 > --- a/arch/microblaze/Kconfig > +++ b/arch/microblaze/Kconfig > @@ -7,7 +7,6 @@ config MICROBLAZE > select ARCH_HAS_GCOV_PROFILE_ALL > select ARCH_HAS_SYNC_DMA_FOR_CPU > select ARCH_HAS_SYNC_DMA_FOR_DEVICE > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_MIGHT_HAVE_PC_PARPORT > select ARCH_WANT_IPC_PARSE_VERSION > select BUILDTIME_TABLE_SORT > diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig > index d0b7eb11ec81..db09d45d59ec 100644 > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > @@ -14,7 +14,6 @@ config MIPS > select ARCH_HAS_STRNLEN_USER > select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST > select ARCH_HAS_UBSAN_SANITIZE_ALL > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_HAS_GCOV_PROFILE_ALL > select ARCH_KEEP_MEMBLOCK > select ARCH_SUPPORTS_UPROBES > diff --git a/arch/nios2/Kconfig b/arch/nios2/Kconfig > index e0459dffd218..4167f1eb4cd8 100644 > --- a/arch/nios2/Kconfig > +++ b/arch/nios2/Kconfig > @@ -6,7 +6,6 @@ config NIOS2 > select ARCH_HAS_SYNC_DMA_FOR_CPU > select ARCH_HAS_SYNC_DMA_FOR_DEVICE > select ARCH_HAS_DMA_SET_UNCACHED > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_NO_SWAP > select COMMON_CLK > select TIMER_OF > diff --git a/arch/openrisc/Kconfig b/arch/openrisc/Kconfig > index fe0dfb50eb86..e814df4c483c 100644 > --- a/arch/openrisc/Kconfig > +++ b/arch/openrisc/Kconfig > @@ -10,7 +10,6 @@ config OPENRISC > select ARCH_HAS_DMA_SET_UNCACHED > select ARCH_HAS_DMA_CLEAR_UNCACHED > select ARCH_HAS_SYNC_DMA_FOR_DEVICE > - select ARCH_HAS_VM_GET_PAGE_PROT > select COMMON_CLK > select OF > select OF_EARLY_FLATTREE > diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig > index 90eabc846f81..5f2448dc5a2b 100644 > --- a/arch/parisc/Kconfig > +++ b/arch/parisc/Kconfig > @@ -11,7 +11,6 @@ config PARISC > select ARCH_HAS_ELF_RANDOMIZE > select ARCH_HAS_STRICT_KERNEL_RWX > select ARCH_HAS_UBSAN_SANITIZE_ALL > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_HAS_PTE_SPECIAL > select ARCH_NO_SG_CHAIN > select ARCH_SUPPORTS_HUGETLBFS if PA20 > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > index 1035d172c7dd..250b8658b2d4 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -140,7 +140,6 @@ config PPC > select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST > select ARCH_HAS_UACCESS_FLUSHCACHE > select ARCH_HAS_UBSAN_SANITIZE_ALL > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_HAVE_NMI_SAFE_CMPXCHG > select ARCH_KEEP_MEMBLOCK > select ARCH_MIGHT_HAVE_PC_PARPORT > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index 583389d4e43a..32ffef9f6e5b 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -32,7 +32,6 @@ config RISCV > select ARCH_HAS_STRICT_MODULE_RWX if MMU && !XIP_KERNEL > select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST > select ARCH_HAS_UBSAN_SANITIZE_ALL > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX > select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT > select ARCH_STACKWALK > diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig > index c4481377ca83..91c0b80a8bf0 100644 > --- a/arch/s390/Kconfig > +++ b/arch/s390/Kconfig > @@ -81,7 +81,6 @@ config S390 > select ARCH_HAS_SYSCALL_WRAPPER > select ARCH_HAS_UBSAN_SANITIZE_ALL > select ARCH_HAS_VDSO_DATA > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_HAVE_NMI_SAFE_CMPXCHG > select ARCH_INLINE_READ_LOCK > select ARCH_INLINE_READ_LOCK_BH > diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig > index 91f3ea325388..5f220e903e5a 100644 > --- a/arch/sh/Kconfig > +++ b/arch/sh/Kconfig > @@ -12,7 +12,6 @@ config SUPERH > select ARCH_HAS_GCOV_PROFILE_ALL > select ARCH_HAS_PTE_SPECIAL > select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_HIBERNATION_POSSIBLE if MMU > select ARCH_MIGHT_HAVE_PC_PARPORT > select ARCH_WANT_IPC_PARSE_VERSION > diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig > index 09f868613a4d..9c1cce74953a 100644 > --- a/arch/sparc/Kconfig > +++ b/arch/sparc/Kconfig > @@ -13,7 +13,6 @@ config 64BIT > config SPARC > bool > default y > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI > select ARCH_MIGHT_HAVE_PC_SERIO > select DMA_OPS > diff --git a/arch/um/Kconfig b/arch/um/Kconfig > index 7fb43654e5b5..4ec22e156a2e 100644 > --- a/arch/um/Kconfig > +++ b/arch/um/Kconfig > @@ -10,7 +10,6 @@ config UML > select ARCH_HAS_KCOV > select ARCH_HAS_STRNCPY_FROM_USER > select ARCH_HAS_STRNLEN_USER > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_NO_PREEMPT > select HAVE_ARCH_AUDITSYSCALL > select HAVE_ARCH_SECCOMP_FILTER > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index be0b95e51df6..841e4843d0c4 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -94,7 +94,6 @@ config X86 > select ARCH_HAS_SYNC_CORE_BEFORE_USERMODE > select ARCH_HAS_SYSCALL_WRAPPER > select ARCH_HAS_UBSAN_SANITIZE_ALL > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_HAS_DEBUG_WX > select ARCH_HAS_ZONE_DMA_SET if EXPERT > select ARCH_HAVE_NMI_SAFE_CMPXCHG > diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig > index 4c0d83520ff1..0b0f0172cced 100644 > --- a/arch/xtensa/Kconfig > +++ b/arch/xtensa/Kconfig > @@ -11,7 +11,6 @@ config XTENSA > select ARCH_HAS_DMA_SET_UNCACHED if MMU > select ARCH_HAS_STRNCPY_FROM_USER if !KASAN > select ARCH_HAS_STRNLEN_USER > - select ARCH_HAS_VM_GET_PAGE_PROT > select ARCH_USE_MEMTEST > select ARCH_USE_QUEUED_RWLOCKS > select ARCH_USE_QUEUED_SPINLOCKS > diff --git a/include/linux/mm.h b/include/linux/mm.h > index 70d900f6df43..d776a86be1d4 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -424,9 +424,6 @@ extern unsigned int kobjsize(const void *objp); > * mapping from the currently active vm_flags protection bits (the > * low four bits) to a page protection mask.. > */ > -#ifndef CONFIG_ARCH_HAS_VM_GET_PAGE_PROT > -extern pgprot_t protection_map[16]; > -#endif > > #define DECLARE_VM_GET_PAGE_PROT \ > pgprot_t vm_get_page_prot(unsigned long vm_flags) \ > diff --git a/mm/Kconfig b/mm/Kconfig > index 169e64192e48..f47d257a053b 100644 > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -951,9 +951,6 @@ config ARCH_HAS_CURRENT_STACK_POINTER > register alias named "current_stack_pointer", this config can be > selected. > > -config ARCH_HAS_VM_GET_PAGE_PROT > - bool > - > config ARCH_HAS_PTE_DEVMAP > bool > > diff --git a/mm/mmap.c b/mm/mmap.c > index 43db3bd49071..3557fe83d124 100644 > --- a/mm/mmap.c > +++ b/mm/mmap.c > @@ -101,28 +101,6 @@ static void unmap_region(struct mm_struct *mm, > * w: (no) no > * x: (yes) yes > */ > -#ifndef CONFIG_ARCH_HAS_VM_GET_PAGE_PROT > -pgprot_t protection_map[16] __ro_after_init = { > - [VM_NONE] = __P000, > - [VM_READ] = __P001, > - [VM_WRITE] = __P010, > - [VM_WRITE | VM_READ] = __P011, > - [VM_EXEC] = __P100, > - [VM_EXEC | VM_READ] = __P101, > - [VM_EXEC | VM_WRITE] = __P110, > - [VM_EXEC | VM_WRITE | VM_READ] = __P111, > - [VM_SHARED] = __S000, > - [VM_SHARED | VM_READ] = __S001, > - [VM_SHARED | VM_WRITE] = __S010, > - [VM_SHARED | VM_WRITE | VM_READ] = __S011, > - [VM_SHARED | VM_EXEC] = __S100, > - [VM_SHARED | VM_EXEC | VM_READ] = __S101, > - [VM_SHARED | VM_EXEC | VM_WRITE] = __S110, > - [VM_SHARED | VM_EXEC | VM_WRITE | VM_READ] = __S111 > -}; > -DECLARE_VM_GET_PAGE_PROT > -#endif /* CONFIG_ARCH_HAS_VM_GET_PAGE_PROT */ > - > static pgprot_t vm_pgprot_modify(pgprot_t oldprot, unsigned long vm_flags) > { > return pgprot_modify(oldprot, vm_get_page_prot(vm_flags));
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig index db1c8b329461..7d0d26b5b3f5 100644 --- a/arch/alpha/Kconfig +++ b/arch/alpha/Kconfig @@ -2,7 +2,6 @@ config ALPHA bool default y - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_32BIT_USTAT_F_TINODE select ARCH_MIGHT_HAVE_PC_PARPORT select ARCH_MIGHT_HAVE_PC_SERIO diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig index 8be56a5d8a9b..9e3653253ef2 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig @@ -13,7 +13,6 @@ config ARC select ARCH_HAS_SETUP_DMA_OPS select ARCH_HAS_SYNC_DMA_FOR_CPU select ARCH_HAS_SYNC_DMA_FOR_DEVICE - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_SUPPORTS_ATOMIC_RMW if ARC_HAS_LLSC select ARCH_32BIT_OFF_T select BUILDTIME_TABLE_SORT diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index e153b6d4fc5b..7630ba9cb6cc 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -24,7 +24,6 @@ config ARM select ARCH_HAS_SYNC_DMA_FOR_CPU if SWIOTLB || !MMU select ARCH_HAS_TEARDOWN_DMA_OPS if MMU select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_HAVE_CUSTOM_GPIO_H select ARCH_HAVE_NMI_SAFE_CMPXCHG if CPU_V7 || CPU_V7M || CPU_V6K select ARCH_HAS_GCOV_PROFILE_ALL diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 1652a9800ebe..7030bf3f8d6f 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -45,7 +45,6 @@ config ARM64 select ARCH_HAS_SYSCALL_WRAPPER select ARCH_HAS_TEARDOWN_DMA_OPS if IOMMU_SUPPORT select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_HAS_ZONE_DMA_SET if EXPERT select ARCH_HAVE_ELF_PROT select ARCH_HAVE_NMI_SAFE_CMPXCHG diff --git a/arch/csky/Kconfig b/arch/csky/Kconfig index 588b8a9c68ed..21d72b078eef 100644 --- a/arch/csky/Kconfig +++ b/arch/csky/Kconfig @@ -6,7 +6,6 @@ config CSKY select ARCH_HAS_GCOV_PROFILE_ALL select ARCH_HAS_SYNC_DMA_FOR_CPU select ARCH_HAS_SYNC_DMA_FOR_DEVICE - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_USE_BUILTIN_BSWAP select ARCH_USE_QUEUED_RWLOCKS select ARCH_WANT_FRAME_POINTERS if !CPU_CK610 && $(cc-option,-mbacktrace) diff --git a/arch/hexagon/Kconfig b/arch/hexagon/Kconfig index bc4ceecd0588..54eadf265178 100644 --- a/arch/hexagon/Kconfig +++ b/arch/hexagon/Kconfig @@ -6,7 +6,6 @@ config HEXAGON def_bool y select ARCH_32BIT_OFF_T select ARCH_HAS_SYNC_DMA_FOR_DEVICE - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_NO_PREEMPT select DMA_GLOBAL_POOL # Other pending projects/to-do items. diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 0510a5737711..cb93769a9f2a 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -12,7 +12,6 @@ config IA64 select ARCH_HAS_DMA_MARK_CLEAN select ARCH_HAS_STRNCPY_FROM_USER select ARCH_HAS_STRNLEN_USER - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_MIGHT_HAVE_PC_PARPORT select ARCH_MIGHT_HAVE_PC_SERIO select ACPI diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig index fd07b8e760ee..1920d52653b4 100644 --- a/arch/loongarch/Kconfig +++ b/arch/loongarch/Kconfig @@ -9,7 +9,6 @@ config LOONGARCH select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI select ARCH_HAS_PHYS_TO_DMA select ARCH_HAS_PTE_SPECIAL - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST select ARCH_INLINE_READ_LOCK if !PREEMPTION select ARCH_INLINE_READ_LOCK_BH if !PREEMPTION diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig index 49aa0cf13e96..936cce42ae9a 100644 --- a/arch/m68k/Kconfig +++ b/arch/m68k/Kconfig @@ -7,7 +7,6 @@ config M68K select ARCH_HAS_CURRENT_STACK_POINTER select ARCH_HAS_DMA_PREP_COHERENT if HAS_DMA && MMU && !COLDFIRE select ARCH_HAS_SYNC_DMA_FOR_DEVICE if HAS_DMA - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_HAVE_NMI_SAFE_CMPXCHG if RMW_INSNS select ARCH_MIGHT_HAVE_PC_PARPORT if ISA select ARCH_NO_PREEMPT if !COLDFIRE diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig index 15f91ba8a0c4..8cf429ad1c84 100644 --- a/arch/microblaze/Kconfig +++ b/arch/microblaze/Kconfig @@ -7,7 +7,6 @@ config MICROBLAZE select ARCH_HAS_GCOV_PROFILE_ALL select ARCH_HAS_SYNC_DMA_FOR_CPU select ARCH_HAS_SYNC_DMA_FOR_DEVICE - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_MIGHT_HAVE_PC_PARPORT select ARCH_WANT_IPC_PARSE_VERSION select BUILDTIME_TABLE_SORT diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index d0b7eb11ec81..db09d45d59ec 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -14,7 +14,6 @@ config MIPS select ARCH_HAS_STRNLEN_USER select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST select ARCH_HAS_UBSAN_SANITIZE_ALL - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_HAS_GCOV_PROFILE_ALL select ARCH_KEEP_MEMBLOCK select ARCH_SUPPORTS_UPROBES diff --git a/arch/nios2/Kconfig b/arch/nios2/Kconfig index e0459dffd218..4167f1eb4cd8 100644 --- a/arch/nios2/Kconfig +++ b/arch/nios2/Kconfig @@ -6,7 +6,6 @@ config NIOS2 select ARCH_HAS_SYNC_DMA_FOR_CPU select ARCH_HAS_SYNC_DMA_FOR_DEVICE select ARCH_HAS_DMA_SET_UNCACHED - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_NO_SWAP select COMMON_CLK select TIMER_OF diff --git a/arch/openrisc/Kconfig b/arch/openrisc/Kconfig index fe0dfb50eb86..e814df4c483c 100644 --- a/arch/openrisc/Kconfig +++ b/arch/openrisc/Kconfig @@ -10,7 +10,6 @@ config OPENRISC select ARCH_HAS_DMA_SET_UNCACHED select ARCH_HAS_DMA_CLEAR_UNCACHED select ARCH_HAS_SYNC_DMA_FOR_DEVICE - select ARCH_HAS_VM_GET_PAGE_PROT select COMMON_CLK select OF select OF_EARLY_FLATTREE diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index 90eabc846f81..5f2448dc5a2b 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig @@ -11,7 +11,6 @@ config PARISC select ARCH_HAS_ELF_RANDOMIZE select ARCH_HAS_STRICT_KERNEL_RWX select ARCH_HAS_UBSAN_SANITIZE_ALL - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_HAS_PTE_SPECIAL select ARCH_NO_SG_CHAIN select ARCH_SUPPORTS_HUGETLBFS if PA20 diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 1035d172c7dd..250b8658b2d4 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -140,7 +140,6 @@ config PPC select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST select ARCH_HAS_UACCESS_FLUSHCACHE select ARCH_HAS_UBSAN_SANITIZE_ALL - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_HAVE_NMI_SAFE_CMPXCHG select ARCH_KEEP_MEMBLOCK select ARCH_MIGHT_HAVE_PC_PARPORT diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index 583389d4e43a..32ffef9f6e5b 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -32,7 +32,6 @@ config RISCV select ARCH_HAS_STRICT_MODULE_RWX if MMU && !XIP_KERNEL select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST select ARCH_HAS_UBSAN_SANITIZE_ALL - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT select ARCH_STACKWALK diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index c4481377ca83..91c0b80a8bf0 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -81,7 +81,6 @@ config S390 select ARCH_HAS_SYSCALL_WRAPPER select ARCH_HAS_UBSAN_SANITIZE_ALL select ARCH_HAS_VDSO_DATA - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_HAVE_NMI_SAFE_CMPXCHG select ARCH_INLINE_READ_LOCK select ARCH_INLINE_READ_LOCK_BH diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 91f3ea325388..5f220e903e5a 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig @@ -12,7 +12,6 @@ config SUPERH select ARCH_HAS_GCOV_PROFILE_ALL select ARCH_HAS_PTE_SPECIAL select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_HIBERNATION_POSSIBLE if MMU select ARCH_MIGHT_HAVE_PC_PARPORT select ARCH_WANT_IPC_PARSE_VERSION diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index 09f868613a4d..9c1cce74953a 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig @@ -13,7 +13,6 @@ config 64BIT config SPARC bool default y - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI select ARCH_MIGHT_HAVE_PC_SERIO select DMA_OPS diff --git a/arch/um/Kconfig b/arch/um/Kconfig index 7fb43654e5b5..4ec22e156a2e 100644 --- a/arch/um/Kconfig +++ b/arch/um/Kconfig @@ -10,7 +10,6 @@ config UML select ARCH_HAS_KCOV select ARCH_HAS_STRNCPY_FROM_USER select ARCH_HAS_STRNLEN_USER - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_NO_PREEMPT select HAVE_ARCH_AUDITSYSCALL select HAVE_ARCH_SECCOMP_FILTER diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index be0b95e51df6..841e4843d0c4 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -94,7 +94,6 @@ config X86 select ARCH_HAS_SYNC_CORE_BEFORE_USERMODE select ARCH_HAS_SYSCALL_WRAPPER select ARCH_HAS_UBSAN_SANITIZE_ALL - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_HAS_DEBUG_WX select ARCH_HAS_ZONE_DMA_SET if EXPERT select ARCH_HAVE_NMI_SAFE_CMPXCHG diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig index 4c0d83520ff1..0b0f0172cced 100644 --- a/arch/xtensa/Kconfig +++ b/arch/xtensa/Kconfig @@ -11,7 +11,6 @@ config XTENSA select ARCH_HAS_DMA_SET_UNCACHED if MMU select ARCH_HAS_STRNCPY_FROM_USER if !KASAN select ARCH_HAS_STRNLEN_USER - select ARCH_HAS_VM_GET_PAGE_PROT select ARCH_USE_MEMTEST select ARCH_USE_QUEUED_RWLOCKS select ARCH_USE_QUEUED_SPINLOCKS diff --git a/include/linux/mm.h b/include/linux/mm.h index 70d900f6df43..d776a86be1d4 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -424,9 +424,6 @@ extern unsigned int kobjsize(const void *objp); * mapping from the currently active vm_flags protection bits (the * low four bits) to a page protection mask.. */ -#ifndef CONFIG_ARCH_HAS_VM_GET_PAGE_PROT -extern pgprot_t protection_map[16]; -#endif #define DECLARE_VM_GET_PAGE_PROT \ pgprot_t vm_get_page_prot(unsigned long vm_flags) \ diff --git a/mm/Kconfig b/mm/Kconfig index 169e64192e48..f47d257a053b 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -951,9 +951,6 @@ config ARCH_HAS_CURRENT_STACK_POINTER register alias named "current_stack_pointer", this config can be selected. -config ARCH_HAS_VM_GET_PAGE_PROT - bool - config ARCH_HAS_PTE_DEVMAP bool diff --git a/mm/mmap.c b/mm/mmap.c index 43db3bd49071..3557fe83d124 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -101,28 +101,6 @@ static void unmap_region(struct mm_struct *mm, * w: (no) no * x: (yes) yes */ -#ifndef CONFIG_ARCH_HAS_VM_GET_PAGE_PROT -pgprot_t protection_map[16] __ro_after_init = { - [VM_NONE] = __P000, - [VM_READ] = __P001, - [VM_WRITE] = __P010, - [VM_WRITE | VM_READ] = __P011, - [VM_EXEC] = __P100, - [VM_EXEC | VM_READ] = __P101, - [VM_EXEC | VM_WRITE] = __P110, - [VM_EXEC | VM_WRITE | VM_READ] = __P111, - [VM_SHARED] = __S000, - [VM_SHARED | VM_READ] = __S001, - [VM_SHARED | VM_WRITE] = __S010, - [VM_SHARED | VM_WRITE | VM_READ] = __S011, - [VM_SHARED | VM_EXEC] = __S100, - [VM_SHARED | VM_EXEC | VM_READ] = __S101, - [VM_SHARED | VM_EXEC | VM_WRITE] = __S110, - [VM_SHARED | VM_EXEC | VM_WRITE | VM_READ] = __S111 -}; -DECLARE_VM_GET_PAGE_PROT -#endif /* CONFIG_ARCH_HAS_VM_GET_PAGE_PROT */ - static pgprot_t vm_pgprot_modify(pgprot_t oldprot, unsigned long vm_flags) { return pgprot_modify(oldprot, vm_get_page_prot(vm_flags));
Now all the platforms enable ARCH_HAS_GET_PAGE_PROT. They define and export own vm_get_page_prot() whether custom or standard DECLARE_VM_GET_PAGE_PROT. Hence there is no need for default generic fallback for vm_get_page_prot(). Just drop this fallback and also ARCH_HAS_GET_PAGE_PROT mechanism. Cc: Andrew Morton <akpm@linux-foundation.org> Cc: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> --- arch/alpha/Kconfig | 1 - arch/arc/Kconfig | 1 - arch/arm/Kconfig | 1 - arch/arm64/Kconfig | 1 - arch/csky/Kconfig | 1 - arch/hexagon/Kconfig | 1 - arch/ia64/Kconfig | 1 - arch/loongarch/Kconfig | 1 - arch/m68k/Kconfig | 1 - arch/microblaze/Kconfig | 1 - arch/mips/Kconfig | 1 - arch/nios2/Kconfig | 1 - arch/openrisc/Kconfig | 1 - arch/parisc/Kconfig | 1 - arch/powerpc/Kconfig | 1 - arch/riscv/Kconfig | 1 - arch/s390/Kconfig | 1 - arch/sh/Kconfig | 1 - arch/sparc/Kconfig | 1 - arch/um/Kconfig | 1 - arch/x86/Kconfig | 1 - arch/xtensa/Kconfig | 1 - include/linux/mm.h | 3 --- mm/Kconfig | 3 --- mm/mmap.c | 22 ---------------------- 25 files changed, 50 deletions(-)