Re: [PATCH V5 7/7] mm/mmap: Drop arch_vm_get_page_pgprot()

From: Christophe Leroy
Date: Tue Apr 12 2022 - 08:57:02 EST




Le 12/04/2022 à 06:38, Anshuman Khandual a écrit :
> There are no platforms left which use arch_vm_get_page_prot(). Just drop
> generic arch_vm_get_page_prot().
>
> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Cc: linux-mm@xxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Reviewed-by: Catalin Marinas <catalin.marinas@xxxxxxx>
> Signed-off-by: Anshuman Khandual <anshuman.khandual@xxxxxxx>
> ---
> include/linux/mman.h | 4 ----
> mm/mmap.c | 3 +--
> 2 files changed, 1 insertion(+), 6 deletions(-)
>
> diff --git a/include/linux/mman.h b/include/linux/mman.h
> index b66e91b8176c..58b3abd457a3 100644
> --- a/include/linux/mman.h
> +++ b/include/linux/mman.h
> @@ -93,10 +93,6 @@ static inline void vm_unacct_memory(long pages)
> #define arch_calc_vm_flag_bits(flags) 0
> #endif
>
> -#ifndef arch_vm_get_page_prot
> -#define arch_vm_get_page_prot(vm_flags) __pgprot(0)
> -#endif
> -
> #ifndef arch_validate_prot
> /*
> * This is called from mprotect(). PROT_GROWSDOWN and PROT_GROWSUP have
> diff --git a/mm/mmap.c b/mm/mmap.c
> index edf2a5e38f4d..db7f33154206 100644
> --- a/mm/mmap.c
> +++ b/mm/mmap.c
> @@ -110,8 +110,7 @@ pgprot_t protection_map[16] __ro_after_init = {
> pgprot_t vm_get_page_prot(unsigned long vm_flags)
> {
> pgprot_t ret = __pgprot(pgprot_val(protection_map[vm_flags &
> - (VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]) |
> - pgprot_val(arch_vm_get_page_prot(vm_flags)));
> + (VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]));
>
> return ret;
> }

__pgprot(pgprot_val(x)) is a no-op.

You can simply do:

return protection_map[vm_flags &
(VM_READ|VM_WRITE|VM_EXEC|VM_SHARED);