]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
arch/s390: Use maple tree iterators instead of linked list.
authorLiam R. Howlett <Liam.Howlett@Oracle.com>
Mon, 4 Jan 2021 19:29:19 +0000 (14:29 -0500)
committerLiam R. Howlett <Liam.Howlett@oracle.com>
Fri, 1 Oct 2021 17:55:46 +0000 (13:55 -0400)
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
arch/s390/mm/gmap.c

index 4d3b33ce81c62f83c69961a2ca7d9d03ae821aea..fdf7f1d17549de6c586728191bb3d79e9d6b2bfc 100644 (file)
@@ -2501,8 +2501,10 @@ static const struct mm_walk_ops thp_split_walk_ops = {
 static inline void thp_split_mm(struct mm_struct *mm)
 {
        struct vm_area_struct *vma;
+       MA_STATE(mas, &mm->mm_mt, 0, 0);
 
-       for (vma = mm->mmap; vma != NULL; vma = vma->vm_next) {
+       /* Must hold mm_mt lock already */
+       mas_for_each(&mas, vma, ULONG_MAX) {
                vma->vm_flags &= ~VM_HUGEPAGE;
                vma->vm_flags |= VM_NOHUGEPAGE;
                walk_page_vma(vma, &thp_split_walk_ops, NULL);
@@ -2570,8 +2572,10 @@ int gmap_mark_unmergeable(void)
        struct mm_struct *mm = current->mm;
        struct vm_area_struct *vma;
        int ret;
+       MA_STATE(mas, &mm->mm_mt, 0, 0);
 
-       for (vma = mm->mmap; vma; vma = vma->vm_next) {
+       /* Must hold mm_mt lock already */
+       mas_for_each(&mas, vma, ULONG_MAX) {
                ret = ksm_madvise(vma, vma->vm_start, vma->vm_end,
                                  MADV_UNMERGEABLE, &vma->vm_flags);
                if (ret)