From e8b3bf631cb2c3f935eab27600ccd5a759bcd675 Mon Sep 17 00:00:00 2001 From: "Liam R. Howlett" Date: Wed, 7 Jul 2021 11:57:43 -0400 Subject: [PATCH] mempolicy: Switch to mt_for_each as most iterations need to mas_pause Signed-off-by: Liam R. Howlett --- mm/mempolicy.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/mm/mempolicy.c b/mm/mempolicy.c index b7b9c224334e..92a27c1fbcc7 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -790,17 +790,17 @@ static int mbind_range(struct mm_struct *mm, unsigned long start, pgoff_t pgoff; unsigned long vmstart; unsigned long vmend; - MA_STATE(mas, &mm->mm_mt, start, start); + unsigned long index = start; rcu_read_lock(); - vma = mas_find(&mas, ULONG_MAX); + vma = find_vma_intersection(mm, start, end); VM_BUG_ON(!vma); - prev = mas_prev(&mas, 0); + prev = vma_prev(mm, vma); if (start > vma->vm_start) prev = vma; - mas_for_each(&mas, vma, end - 1) { + mt_for_each(&mm->mm_mt, vma, index, end - 1) { vmstart = max(start, vma->vm_start); vmend = min(end, vma->vm_end); @@ -814,7 +814,6 @@ static int mbind_range(struct mm_struct *mm, unsigned long start, new_pol, vma->vm_userfaultfd_ctx); if (prev) { vma = prev; - mas_set(&mas, vma->vm_end); if (mpol_equal(vma_policy(vma), new_pol)) continue; /* vma_merge() joined vma && vma->next, case 8 */ -- 2.50.1