]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mm/mempolicy: fix adcfbd7698558a
authorLiam R. Howlett <Liam.Howlett@Oracle.com>
Tue, 9 Feb 2021 19:37:24 +0000 (14:37 -0500)
committerLiam R. Howlett <Liam.Howlett@Oracle.com>
Tue, 9 Feb 2021 19:37:40 +0000 (14:37 -0500)
When removing the linked list, a bug was introduced in maple state
iterator used for the mbind_range() function.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
mm/mempolicy.c

index 02319f993b1a53bcee9c1c680c48c627036f45cc..ae7ed639ba4bb1fe0bba1a0cd63539fd8b211173 100644 (file)
@@ -815,7 +815,7 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
        vma = mas_find(&mas, -1);
        VM_BUG_ON(!vma);
 
-       prev = vma_mas_prev(&mas);
+       prev = mas_prev(&mas, 0);
        if (start > vma->vm_start)
                prev = vma;
 
@@ -833,6 +833,7 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
                                 new_pol, vma->vm_userfaultfd_ctx);
                if (prev) {
                        vma = prev;
+                       mas_set(&mas, vma->vm_end);
                        if (mpol_equal(vma_policy(vma), new_pol))
                                continue;
                        /* vma_merge() joined vma && vma->next, case 8 */
@@ -856,7 +857,7 @@ next:
                prev = vma;
        }
 
- out:
+out:
        return err;
 }