protection_map[] maps vm_flags access combinations into page protection
value as defined by the platform via __PXXX and __SXXX macros. The array
indices in protection_map[], represents vm_flags access combinations but
it's not very intuitive to derive. This makes it clear and explicit.

Cc: Andrew Morton <a...@linux-foundation.org>
Cc: linux...@kvack.org
Cc: linux-ker...@vger.kernel.org
Reviewed-by: Christoph Hellwig <h...@lst.de>
Signed-off-by: Anshuman Khandual <anshuman.khand...@arm.com>
---
 mm/mmap.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/mm/mmap.c b/mm/mmap.c
index d445c1b9d606..34000a7d7efa 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -102,8 +102,22 @@ static void unmap_region(struct mm_struct *mm,
  *                                                             x: (yes) yes
  */
 pgprot_t protection_map[16] __ro_after_init = {
-       __P000, __P001, __P010, __P011, __P100, __P101, __P110, __P111,
-       __S000, __S001, __S010, __S011, __S100, __S101, __S110, __S111
+       [VM_NONE]                                       = __P000,
+       [VM_READ]                                       = __P001,
+       [VM_WRITE]                                      = __P010,
+       [VM_WRITE | VM_READ]                            = __P011,
+       [VM_EXEC]                                       = __P100,
+       [VM_EXEC | VM_READ]                             = __P101,
+       [VM_EXEC | VM_WRITE]                            = __P110,
+       [VM_EXEC | VM_WRITE | VM_READ]                  = __P111,
+       [VM_SHARED]                                     = __S000,
+       [VM_SHARED | VM_READ]                           = __S001,
+       [VM_SHARED | VM_WRITE]                          = __S010,
+       [VM_SHARED | VM_WRITE | VM_READ]                = __S011,
+       [VM_SHARED | VM_EXEC]                           = __S100,
+       [VM_SHARED | VM_EXEC | VM_READ]                 = __S101,
+       [VM_SHARED | VM_EXEC | VM_WRITE]                = __S110,
+       [VM_SHARED | VM_EXEC | VM_WRITE | VM_READ]      = __S111
 };
 
 #ifndef CONFIG_ARCH_HAS_FILTER_PGPROT
-- 
2.25.1


_______________________________________________
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc

Reply via email to