Rename internal vma_next() to _vma_next(). Signed-off-by: Liam R. Howlett <Liam.Howlett@xxxxxxxxxx> --- include/linux/mm.h | 33 +++++++++++++++++++++++++++++++++ mm/mmap.c | 12 ++++++------ 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index cbc79a9fa911..82b076787515 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2694,6 +2694,24 @@ 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) +{ + MA_STATE(mas, &mm->mm_mt, 0, 0); + + mas_set(&mas, vma->vm_end); + return mas_next(&mas, ULONG_MAX); +} + +static inline struct vm_area_struct *vma_prev(struct mm_struct *mm, + const struct vm_area_struct *vma) +{ + MA_STATE(mas, &mm->mm_mt, 0, 0); + + mas_set(&mas, vma->vm_start); + return mas_prev(&mas, 0); +} + static inline unsigned long vm_start_gap(struct vm_area_struct *vma) { unsigned long vm_start = vma->vm_start; @@ -2735,6 +2753,21 @@ static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm, return vma; } +static inline struct vm_area_struct *vma_mas_next(struct ma_state *mas) +{ + struct ma_state tmp; + + memcpy(&tmp, mas, sizeof(tmp)); + return mas_next(&tmp, ULONG_MAX); +} + +static inline struct vm_area_struct *vma_mas_prev(struct ma_state *mas) +{ + struct ma_state tmp; + + memcpy(&tmp, mas, sizeof(tmp)); + return mas_prev(&tmp, 0); +} static inline bool range_in_vma(struct vm_area_struct *vma, unsigned long start, unsigned long end) { diff --git a/mm/mmap.c b/mm/mmap.c index a8e4f836b167..51a29bb789ba 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -481,7 +481,7 @@ static 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. * @@ -489,7 +489,7 @@ static 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) @@ -1144,7 +1144,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; @@ -2302,7 +2302,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(); @@ -2453,7 +2453,7 @@ static int 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 { @@ -2470,7 +2470,7 @@ static int 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