Signed-off-by: Liam R. Howlett <[email protected]>
---
 mm/mremap.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/mm/mremap.c b/mm/mremap.c
index a7526a8c1fe5a..3b6e7f0324635 100644
--- a/mm/mremap.c
+++ b/mm/mremap.c
@@ -465,7 +465,7 @@ static unsigned long move_vma(struct vm_area_struct *vma,
        if (excess) {
                vma->vm_flags |= VM_ACCOUNT;
                if (split)
-                       vma->vm_next->vm_flags |= VM_ACCOUNT;
+                       vma_next(mm, vma)->vm_flags |= VM_ACCOUNT;
        }
 
        return new_addr;
@@ -638,9 +638,11 @@ static unsigned long mremap_to(unsigned long addr, 
unsigned long old_len,
 static int vma_expandable(struct vm_area_struct *vma, unsigned long delta)
 {
        unsigned long end = vma->vm_end + delta;
+       struct vm_area_struct *next;
        if (end < vma->vm_end) /* overflow */
                return 0;
-       if (vma->vm_next && vma->vm_next->vm_start < end) /* intersection */
+       next = vma_next(vma->vm_mm, vma);
+       if (next && next->vm_start < end) /* intersection */
                return 0;
        if (get_unmapped_area(NULL, vma->vm_start, end - vma->vm_start,
                              0, MAP_FIXED) & ~PAGE_MASK)
-- 
2.28.0

Reply via email to