lkml.org 
[lkml]   [2022]   [Apr]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/2] mm/mmap: Clarify protection_map[] indices
    Date
    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 <akpm@linux-foundation.org>
    Cc: linux-mm@kvack.org
    Cc: linux-kernel@vger.kernel.org
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
    ---
    mm/mmap.c | 18 ++++++++++++++++--
    1 file changed, 16 insertions(+), 2 deletions(-)

    diff --git a/mm/mmap.c b/mm/mmap.c
    index 3aa839f81e63..4b8ee3fd03ad 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
    \
     
     \ /
      Last update: 2022-04-04 05:19    [W:3.963 / U:0.568 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site