The behaviour of pXdp_get() will change with generic compile-time folded
page tables. To prepare for that, replace passing the address of a stack
copy of a pud/pmd to walk_pmd/pte_range() with passing the pud/pmd pointer
directly so that  makes allowing folded entries to be ignored and
check the concurrent access proeprly otherwise pXd_same() would return
always true.

There should be no functional change.

Reviewed-by: Muhammad Usama Anjum <[email protected]>
Signed-off-by: Yeoreum Yun <[email protected]>
---
 mm/vmscan.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mm/vmscan.c b/mm/vmscan.c
index 4d51b0d8e287..4e98088becab 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -3777,7 +3777,7 @@ static void walk_pmd_range(pud_t *pud, unsigned long 
start, unsigned long end,
 
                walk->mm_stats[MM_NONLEAF_FOUND]++;
 
-               if (!walk_pte_range(&val, addr, next, args))
+               if (!walk_pte_range(pmd + i, addr, next, args))
                        continue;
 
                walk->mm_stats[MM_NONLEAF_ADDED]++;
@@ -3813,7 +3813,7 @@ static int walk_pud_range(p4d_t *p4d, unsigned long 
start, unsigned long end,
                if (!pud_present(val) || WARN_ON_ONCE(pud_leaf(val)))
                        continue;
 
-               walk_pmd_range(&val, addr, next, args);
+               walk_pmd_range(pud + i, addr, next, args);
 
                if (need_resched() || walk->batched >= MAX_LRU_BATCH) {
                        end = (addr | ~PUD_MASK) + 1;

-- 
2.43.0


Reply via email to