From fec821b5e1939d3dc9730b873f0858c9699f93bc Mon Sep 17 00:00:00 2001 From: "Liam R. Howlett" Date: Tue, 16 Mar 2021 15:59:15 -0400 Subject: [PATCH] sched/fair rcu fix Signed-off-by: Liam R. Howlett --- kernel/sched/fair.c | 4 ++++ 1 file changed, 4 insertions(+) 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); /* -- 2.50.1