From: Liam R. Howlett 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=8891f357a3971c9d11ccaf0ab66d26bce45f688d;p=users%2Fjedix%2Flinux-maple.git kernel/events/uprobes: Use maple tree iterators instead of linked list Signed-off-by: Liam R. Howlett --- diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c index bf9edd8d75be..24cfa05e42ae 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; @@ -1239,9 +1240,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; @@ -1990,8 +1992,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; /*