From: Ye Liu <[email protected]>

Replace the manual rcu_read_lock()/rcu_read_unlock() pair combined
with for_each_process() loop in mm/ksm.c with for_each_process_rculock(),
which scopes the RCU read lock to the loop body via scoped_guard(rcu).

No functional change.

Signed-off-by: Ye Liu <[email protected]>
Acked-by: Michal Hocko <[email protected]>
Reviewed-by: SJ Park <[email protected]>
---
Changes in v2:
  - Rename *_rcu to *_rculock
 mm/ksm.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/mm/ksm.c b/mm/ksm.c
index 49d48d1e0998..69d30e80a090 100644
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -3280,8 +3280,7 @@ void collect_procs_ksm(const struct folio *folio, const 
struct page *page,
                struct anon_vma *av = rmap_item->anon_vma;
 
                anon_vma_lock_read(av);
-               rcu_read_lock();
-               for_each_process(tsk) {
+               for_each_process_rculock(tsk) {
                        struct anon_vma_chain *vmac;
                        const unsigned long addr = rmap_item->address & 
PAGE_MASK;
                        const unsigned long index = 
rmap_item->linear_page_index;
@@ -3298,7 +3297,6 @@ void collect_procs_ksm(const struct folio *folio, const 
struct page *page,
                                }
                        }
                }
-               rcu_read_unlock();
                anon_vma_unlock_read(av);
        }
 }
-- 
2.25.1


Reply via email to