Le 24/06/2022 à 06:43, Anshuman Khandual a écrit : > This just converts the generic vm_get_page_prot() implementation into a new > macro i.e DECLARE_VM_GET_PAGE_PROT which later can be used across platforms > when enabling them with ARCH_HAS_VM_GET_PAGE_PROT. This does not create any > functional change. > > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > Cc: linux-mm@xxxxxxxxx > Cc: linux-kernel@xxxxxxxxxxxxxxx > Suggested-by: Christoph Hellwig <hch@xxxxxxxxxxxxx> > Signed-off-by: Anshuman Khandual <anshuman.khandual@xxxxxxx> > --- > include/linux/mm.h | 8 ++++++++ > mm/mmap.c | 6 +----- > 2 files changed, 9 insertions(+), 5 deletions(-) > > diff --git a/include/linux/mm.h b/include/linux/mm.h > index 47bfe038d46e..237828c2bae2 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -428,6 +428,14 @@ extern unsigned int kobjsize(const void *objp); > extern pgprot_t protection_map[16]; > #endif > I think the comment above protection_map[16] in mm/mmap.c should be moved here. > +#define DECLARE_VM_GET_PAGE_PROT \ > +pgprot_t vm_get_page_prot(unsigned long vm_flags) \ > +{ \ > + return protection_map[vm_flags & \ > + (VM_READ | VM_WRITE | VM_EXEC | VM_SHARED)]; \ > +} \ > +EXPORT_SYMBOL(vm_get_page_prot); > + > /* > * The default fault flags that should be used by most of the > * arch-specific page fault handlers. > diff --git a/mm/mmap.c b/mm/mmap.c > index b01f0280bda2..55c30aee3999 100644 > --- a/mm/mmap.c > +++ b/mm/mmap.c > @@ -123,11 +123,7 @@ pgprot_t protection_map[16] __ro_after_init = { > #endif > > #ifndef CONFIG_ARCH_HAS_VM_GET_PAGE_PROT > -pgprot_t vm_get_page_prot(unsigned long vm_flags) > -{ > - return protection_map[vm_flags & (VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]; > -} > -EXPORT_SYMBOL(vm_get_page_prot); > +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)