]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
sched/fair rcu fix
authorLiam R. Howlett <Liam.Howlett@Oracle.com>
Tue, 16 Mar 2021 19:59:15 +0000 (15:59 -0400)
committerLiam R. Howlett <Liam.Howlett@Oracle.com>
Tue, 16 Mar 2021 19:59:15 +0000 (15:59 -0400)
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
kernel/sched/fair.c

index 73c175206b198a7741871f3d2f97add39d8296e6..d8674c26e299f5f2b753e469e64b67b42471c15f 100644 (file)
@@ -2788,6 +2788,7 @@ static void task_numa_work(struct callback_head *work)
        if (!mmap_read_trylock(mm))
                return;
 
+       rcu_read_lock();
        mas_set(&mas, start);
        vma = mas_find(&mas, ULONG_MAX);
        if (!vma) {
@@ -2841,7 +2842,9 @@ static void task_numa_work(struct callback_head *work)
                        if (pages <= 0 || virtpages <= 0)
                                goto out;
 
+                       rcu_read_unlock();
                        cond_resched();
+                       rcu_read_lock();
                } while (end != vma->vm_end);
        }
 
@@ -2856,6 +2859,7 @@ out:
                mm->numa_scan_offset = start;
        else
                reset_ptenuma_scan(p);
+       rcu_read_unlock();
        mmap_read_unlock(mm);
 
        /*