Start using the maple tree Signed-off-by: Liam R. Howlett <Liam.Howlett@xxxxxxxxxx> --- arch/powerpc/mm/book3s32/tlb.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/mm/book3s32/tlb.c b/arch/powerpc/mm/book3s32/tlb.c index 19f0ef950d77..2c8b991de8e8 100644 --- a/arch/powerpc/mm/book3s32/tlb.c +++ b/arch/powerpc/mm/book3s32/tlb.c @@ -81,6 +81,7 @@ EXPORT_SYMBOL(hash__flush_range); void hash__flush_tlb_mm(struct mm_struct *mm) { struct vm_area_struct *mp; + MA_STATE(mas, &mm->mm_mt, 0, 0); /* * It is safe to go down the mm's list of vmas when called @@ -88,8 +89,10 @@ void hash__flush_tlb_mm(struct mm_struct *mm) * unmap_region or exit_mmap, but not from vmtruncate on SMP - * but it seems dup_mmap is the only SMP case which gets here. */ - for (mp = mm->mmap; mp != NULL; mp = mp->vm_next) + rcu_read_lock(); + mas_for_each(&mas, mp, ULONG_MAX) hash__flush_range(mp->vm_mm, mp->vm_start, mp->vm_end); + rcu_read_unlock(); } EXPORT_SYMBOL(hash__flush_tlb_mm); -- 2.30.2