Re: [PATCH V6 1/7] mm/mmap: Add new config ARCH_HAS_VM_GET_PAGE_PROT

From: Christophe Leroy
Date: Wed Apr 13 2022 - 02:07:59 EST




Le 13/04/2022 à 07:58, Anshuman Khandual a écrit :
> Add a new config ARCH_HAS_VM_GET_PAGE_PROT, which when subscribed enables a
> given platform to define its own vm_get_page_prot() but still utilizing the
> generic protection_map[] array.
>
> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Cc: linux-mm@xxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Reviewed-by: Catalin Marinas <catalin.marinas@xxxxxxx>
> Suggested-by: Christoph Hellwig <hch@xxxxxxxxxxxxx>

Reviewed-by: Christophe Leroy <christophe.leroy@xxxxxxxxxx>

> Signed-off-by: Anshuman Khandual <anshuman.khandual@xxxxxxx>
> ---
> mm/Kconfig | 3 +++
> mm/mmap.c | 2 ++
> 2 files changed, 5 insertions(+)
>
> diff --git a/mm/Kconfig b/mm/Kconfig
> index 034d87953600..b1f7624276f8 100644
> --- a/mm/Kconfig
> +++ b/mm/Kconfig
> @@ -765,6 +765,9 @@ config ARCH_HAS_CURRENT_STACK_POINTER
> config ARCH_HAS_FILTER_PGPROT
> bool
>
> +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 3aa839f81e63..87cb2eaf7e1a 100644
> --- a/mm/mmap.c
> +++ b/mm/mmap.c
> @@ -106,6 +106,7 @@ pgprot_t protection_map[16] __ro_after_init = {
> __S000, __S001, __S010, __S011, __S100, __S101, __S110, __S111
> };
>
> +#ifndef CONFIG_ARCH_HAS_VM_GET_PAGE_PROT
> #ifndef CONFIG_ARCH_HAS_FILTER_PGPROT
> static inline pgprot_t arch_filter_pgprot(pgprot_t prot)
> {
> @@ -122,6 +123,7 @@ pgprot_t vm_get_page_prot(unsigned long vm_flags)
> return arch_filter_pgprot(ret);
> }
> EXPORT_SYMBOL(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)
> {