lkml.org 
[lkml]   [2021]   [Apr]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 82/94] mm/mprotect: Use maple tree navigation instead of vma linked list
    Date
    Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
    ---
    mm/mprotect.c | 7 ++++---
    1 file changed, 4 insertions(+), 3 deletions(-)

    diff --git a/mm/mprotect.c b/mm/mprotect.c
    index e7a443157988..c468a823627f 100644
    --- a/mm/mprotect.c
    +++ b/mm/mprotect.c
    @@ -518,6 +518,7 @@ static int do_mprotect_pkey(unsigned long start, size_t len,
    const int grows = prot & (PROT_GROWSDOWN|PROT_GROWSUP);
    const bool rier = (current->personality & READ_IMPLIES_EXEC) &&
    (prot & PROT_READ);
    + MA_STATE(mas, &current->mm->mm_mt, start, start);

    start = untagged_addr(start);

    @@ -549,11 +550,11 @@ static int do_mprotect_pkey(unsigned long start, size_t len,
    if ((pkey != -1) && !mm_pkey_is_allocated(current->mm, pkey))
    goto out;

    - vma = find_vma(current->mm, start);
    + vma = mas_find(&mas, ULONG_MAX);
    error = -ENOMEM;
    if (!vma)
    goto out;
    - prev = vma->vm_prev;
    + prev = mas_prev(&mas, 0);
    if (unlikely(grows & PROT_GROWSDOWN)) {
    if (vma->vm_start >= end)
    goto out;
    @@ -634,7 +635,7 @@ static int do_mprotect_pkey(unsigned long start, size_t len,
    if (nstart >= end)
    goto out;

    - vma = prev->vm_next;
    + vma = vma_next(current->mm, prev);
    if (!vma || vma->vm_start != nstart) {
    error = -ENOMEM;
    goto out;
    --
    2.30.2
    \
     
     \ /
      Last update: 2021-04-28 17:47    [W:2.185 / U:0.220 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site