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