]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mm: Introduce vma_next() and vma_prev()
authorLiam R. Howlett <Liam.Howlett@Oracle.com>
Mon, 4 Jan 2021 20:13:14 +0000 (15:13 -0500)
committerLiam R. Howlett <Liam.Howlett@Oracle.com>
Thu, 24 Jun 2021 20:04:22 +0000 (16:04 -0400)
Rename internal vma_next() to _vma_next().

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
include/linux/mm.h
mm/mmap.c

index 6de31e19ffbc8c8e54d39d191ba9f4385d1da564..1ea1735424e9b19ed59159df6eaa9928f6c6b5a6 100644 (file)
@@ -2697,6 +2697,18 @@ struct vm_area_struct *vma_lookup(struct mm_struct *mm, unsigned long addr)
        return mtree_load(&mm->mm_mt, addr);
 }
 
+static inline struct vm_area_struct *vma_next(struct mm_struct *mm,
+                       const struct vm_area_struct *vma)
+{
+       return mt_next(&mm->mm_mt, vma->vm_end, ULONG_MAX);
+}
+
+static inline struct vm_area_struct *vma_prev(struct mm_struct *mm,
+                       const struct vm_area_struct *vma)
+{
+       return mt_prev(&mm->mm_mt, vma->vm_start, 0);
+}
+
 static inline unsigned long vm_start_gap(struct vm_area_struct *vma)
 {
        unsigned long vm_start = vma->vm_start;
index 39e79ca8ec704ad08decd96ee4169b11563e2e01..dc6a5d7675880f5341b7ec31b18f4affc1bcedae 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -485,7 +485,7 @@ bool range_has_overlap(struct mm_struct *mm, unsigned long start,
 }
 
 /*
- * vma_next() - Get the next VMA.
+ * _vma_next() - Get the next VMA or the first.
  * @mm: The mm_struct.
  * @vma: The current vma.
  *
@@ -493,7 +493,7 @@ bool range_has_overlap(struct mm_struct *mm, unsigned long start,
  *
  * Returns: The next VMA after @vma.
  */
-static inline struct vm_area_struct *vma_next(struct mm_struct *mm,
+static inline struct vm_area_struct *_vma_next(struct mm_struct *mm,
                                         struct vm_area_struct *vma)
 {
        if (!vma)
@@ -1182,7 +1182,7 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
        if (vm_flags & VM_SPECIAL)
                return NULL;
 
-       next = vma_next(mm, prev);
+       next = _vma_next(mm, prev);
        area = next;
        if (area && area->vm_end == end)                /* cases 6, 7, 8 */
                next = next->vm_next;
@@ -2346,7 +2346,7 @@ static void unmap_region(struct mm_struct *mm,
                struct vm_area_struct *vma, struct vm_area_struct *prev,
                unsigned long start, unsigned long end)
 {
-       struct vm_area_struct *next = vma_next(mm, prev);
+       struct vm_area_struct *next = _vma_next(mm, prev);
        struct mmu_gather tlb;
 
        lru_add_drain();
@@ -2500,7 +2500,7 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma,
                if (error)
                        return error;
                prev = vma;
-               vma = vma_next(mm, prev);
+               vma = _vma_next(mm, prev);
                mas->index = start;
                mas_reset(mas);
        } else {
@@ -2517,7 +2517,7 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma,
                int error = __split_vma(mm, last, end, 1);
                if (error)
                        return error;
-               vma = vma_next(mm, prev);
+               vma = _vma_next(mm, prev);
                mas_reset(mas);
        }