Re: [PATCH V4 26/26] mm/mmap: Drop ARCH_HAS_VM_GET_PAGE_PROT

2022-06-26 Thread Christophe Leroy


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 
> Cc: linux...@kvack.org
> Cc: linux-ker...@vger.kernel.org
> Signed-off-by: Anshuman Khandual 

Reviewed-by: Christophe Leroy 

> ---
>   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  

Re: [PATCH V4 26/26] mm/mmap: Drop ARCH_HAS_VM_GET_PAGE_PROT

2022-06-23 Thread Christophe Leroy


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 
> Cc: linux...@kvack.org
> Cc: linux-ker...@vger.kernel.org
> Signed-off-by: Anshuman Khandual 
> ---
>   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));
___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc


Re: [PATCH V4 26/26] mm/mmap: Drop ARCH_HAS_VM_GET_PAGE_PROT

2022-06-23 Thread Christoph Hellwig
Looks good:

Reviewed-by: Christoph Hellwig 

___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc


[PATCH V4 26/26] mm/mmap: Drop ARCH_HAS_VM_GET_PAGE_PROT

2022-06-23 Thread Anshuman Khandual
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 
Cc: linux...@kvack.org
Cc: linux-ker...@vger.kernel.org
Signed-off-by: Anshuman Khandual 
---
 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