From 06ba53390f6ee196261b09917e182c311a46e0de Mon Sep 17 00:00:00 2001 From: "Liam R. Howlett" Date: Tue, 16 Mar 2021 15:59:36 -0400 Subject: [PATCH] khugepaged rcu fix Signed-off-by: Liam R. Howlett --- mm/khugepaged.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 1e22a5a2e25d..613f0bdc8b34 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -2099,6 +2099,8 @@ static unsigned int khugepaged_scan_mm_slot(unsigned int pages, mas_set(&mas, khugepaged_scan.address); if (unlikely(!mmap_read_trylock(mm))) goto breakouterloop_mmap_lock; + + rcu_read_lock(); if (likely(!khugepaged_test_exit(mm))) vma = mas_find(&mas, ULONG_MAX); @@ -2142,6 +2144,7 @@ skip: pgoff_t pgoff = linear_page_index(vma, khugepaged_scan.address); + rcu_read_unlock(); mmap_read_unlock(mm); ret = 1; khugepaged_scan_file(mm, file, pgoff, hpage); @@ -2162,6 +2165,7 @@ skip: } } breakouterloop: + rcu_unread_lock(); mmap_read_unlock(mm); /* exit_mmap will destroy ptes after this */ breakouterloop_mmap_lock: -- 2.50.1