lkml.org 
[lkml]   [2021]   [Aug]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 35/61] fs/exec: Use vma_next() instead of linked list
    Date
    From: "Liam R. Howlett" <Liam.Howlett@Oracle.com>

    Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
    ---
    fs/exec.c | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    diff --git a/fs/exec.c b/fs/exec.c
    index 9cc6bf3a5f0c..d3eb43866e1e 100644
    --- a/fs/exec.c
    +++ b/fs/exec.c
    @@ -680,6 +680,7 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
    unsigned long length = old_end - old_start;
    unsigned long new_start = old_start - shift;
    unsigned long new_end = old_end - shift;
    + struct vm_area_struct *next;
    struct mmu_gather tlb;

    BUG_ON(new_start > new_end);
    @@ -707,12 +708,13 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)

    lru_add_drain();
    tlb_gather_mmu(&tlb, mm);
    + next = vma_next(mm, vma);
    if (new_end > old_start) {
    /*
    * when the old and new regions overlap clear from new_end.
    */
    free_pgd_range(&tlb, new_end, old_end, new_end,
    - vma->vm_next ? vma->vm_next->vm_start : USER_PGTABLES_CEILING);
    + next ? next->vm_start : USER_PGTABLES_CEILING);
    } else {
    /*
    * otherwise, clean from old_start; this is done to not touch
    @@ -721,7 +723,7 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
    * for the others its just a little faster.
    */
    free_pgd_range(&tlb, old_start, old_end, new_end,
    - vma->vm_next ? vma->vm_next->vm_start : USER_PGTABLES_CEILING);
    + next ? next->vm_start : USER_PGTABLES_CEILING);
    }
    tlb_finish_mmu(&tlb);

    --
    2.30.2
    \
     
     \ /
      Last update: 2021-08-17 17:55    [W:3.853 / U:0.376 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site