]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
kernel/events/uprobes: Use maple tree iterators instead of linked list
authorLiam R. Howlett <Liam.Howlett@Oracle.com>
Mon, 4 Jan 2021 19:53:01 +0000 (14:53 -0500)
committerLiam R. Howlett <Liam.Howlett@Oracle.com>
Thu, 14 Jan 2021 01:33:57 +0000 (20:33 -0500)
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
kernel/events/uprobes.c

index bf9edd8d75be53ed233ce29d731af5fa6cdda145..24cfa05e42aed1336a07f4d25862cdabd035613d 100644 (file)
@@ -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;
                /*