From: Liam R. Howlett <Liam.Howlett@Oracle.com> Date: Mon, 4 Jan 2021 19:53:01 +0000 (-0500) Subject: kernel/events/uprobes: Use maple tree iterators instead of linked list X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=6ee306cfa82cf9c75fed347b9c2383e733a5356f;p=users%2Fjedix%2Flinux-maple.git kernel/events/uprobes: Use maple tree iterators instead of linked list Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com> --- diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c index af24dc3febbe..806a64af013d 100644 --- a/kernel/events/uprobes.c +++ b/kernel/events/uprobes.c @@ -356,8 +356,9 @@ static struct vm_area_struct * find_ref_ctr_vma(struct uprobe *uprobe, struct mm_struct *mm) { struct vm_area_struct *tmp; + MA_STATE(mas, &mm->mm_mt, 0, 0); - for (tmp = mm->mmap; tmp; tmp = tmp->vm_next) + mas_for_each(&mas, tmp, ULONG_MAX) if (valid_ref_ctr_vma(uprobe, tmp)) return tmp; @@ -1238,9 +1239,10 @@ static int unapply_uprobe(struct uprobe *uprobe, struct mm_struct *mm) { struct vm_area_struct *vma; int err = 0; + MA_STATE(mas, &mm->mm_mt, 0, 0); mmap_read_lock(mm); - for (vma = mm->mmap; vma; vma = vma->vm_next) { + mas_for_each(&mas, vma, ULONG_MAX) { unsigned long vaddr; loff_t offset; @@ -1989,8 +1991,9 @@ bool uprobe_deny_signal(void) static void mmf_recalc_uprobes(struct mm_struct *mm) { struct vm_area_struct *vma; + MA_STATE(mas, &mm->mm_mt, 0, 0); - for (vma = mm->mmap; vma; vma = vma->vm_next) { + mas_for_each(&mas, vma, ULONG_MAX) { if (!valid_vma(vma, false)) continue; /*