From: Liam R. Howlett Date: Wed, 7 Jul 2021 15:57:43 +0000 (-0400) Subject: mempolicy: Switch to mt_for_each as most iterations need to mas_pause X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=e8b3bf631cb2c3f935eab27600ccd5a759bcd675;p=users%2Fjedix%2Flinux-maple.git mempolicy: Switch to mt_for_each as most iterations need to mas_pause Signed-off-by: Liam R. Howlett --- 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 */