[PATCH v2 23/61] mm: Introduce vma_next() and vma_prev()

From: Liam Howlett
Date: Tue Aug 17 2021 - 11:52:56 EST


From: "Liam R. Howlett" <Liam.Howlett@xxxxxxxxxx>

Rename internal vma_next() to _vma_next().

Signed-off-by: Liam R. Howlett <Liam.Howlett@xxxxxxxxxx>
---
include/linux/mm.h | 12 ++++++++++++
mm/mmap.c | 12 ++++++------
2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/include/linux/mm.h b/include/linux/mm.h
index e14d07649007..7a5eb1fbb488 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -2796,6 +2796,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 - 1, 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;
diff --git a/mm/mmap.c b/mm/mmap.c
index 150d9e9c0a68..afef4af1c621 100644
--- 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;
@@ -2347,7 +2347,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();
@@ -2501,7 +2501,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 {
@@ -2518,7 +2518,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);
}

--
2.30.2