From: Liam R. Howlett <Liam.Howlett@Oracle.com> Date: Tue, 16 Mar 2021 19:59:15 +0000 (-0400) Subject: sched/fair rcu fix X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=fec821b5e1939d3dc9730b873f0858c9699f93bc;p=users%2Fjedix%2Flinux-maple.git sched/fair rcu fix Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com> --- diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 73c175206b19..d8674c26e299 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -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); /*