Message ID | 20220413055840.392628-2-anshuman.khandual@arm.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm/mmap: Drop arch_vm_get_page_prot() and arch_filter_pgprot() | expand |
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@linux-foundation.org> > Cc: linux-mm@kvack.org > Cc: linux-kernel@vger.kernel.org > Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> > Suggested-by: Christoph Hellwig <hch@infradead.org> Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu> > Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> > --- > 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) > {
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) {