Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

mm/ptdump: replace READ_ONCE() with standard page table accessors

Replace READ_ONCE() with standard page table accessors i.e pxdp_get()
which anyways default into READ_ONCE() in cases where platform does not
override. Also convert ptep_get_lockless() into ptep_get() as well.

Link: https://lkml.kernel.org/r/20251001042502.1400726-1-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Dev Jain <dev.jain@arm.com>
Acked-by: Lance Yang <lance.yang@linux.dev>
Acked-by: SeongJae Park <sj@kernel.org>
Acked-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Anshuman Khandual and committed by
Andrew Morton
11119b19 b6c46600

+5 -5
+5 -5
mm/ptdump.c
··· 31 31 unsigned long next, struct mm_walk *walk) 32 32 { 33 33 struct ptdump_state *st = walk->private; 34 - pgd_t val = READ_ONCE(*pgd); 34 + pgd_t val = pgdp_get(pgd); 35 35 36 36 #if CONFIG_PGTABLE_LEVELS > 4 && \ 37 37 (defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)) ··· 54 54 unsigned long next, struct mm_walk *walk) 55 55 { 56 56 struct ptdump_state *st = walk->private; 57 - p4d_t val = READ_ONCE(*p4d); 57 + p4d_t val = p4dp_get(p4d); 58 58 59 59 #if CONFIG_PGTABLE_LEVELS > 3 && \ 60 60 (defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)) ··· 77 77 unsigned long next, struct mm_walk *walk) 78 78 { 79 79 struct ptdump_state *st = walk->private; 80 - pud_t val = READ_ONCE(*pud); 80 + pud_t val = pudp_get(pud); 81 81 82 82 #if CONFIG_PGTABLE_LEVELS > 2 && \ 83 83 (defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)) ··· 100 100 unsigned long next, struct mm_walk *walk) 101 101 { 102 102 struct ptdump_state *st = walk->private; 103 - pmd_t val = READ_ONCE(*pmd); 103 + pmd_t val = pmdp_get(pmd); 104 104 105 105 #if defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS) 106 106 if (pmd_page(val) == virt_to_page(lm_alias(kasan_early_shadow_pte))) ··· 121 121 unsigned long next, struct mm_walk *walk) 122 122 { 123 123 struct ptdump_state *st = walk->private; 124 - pte_t val = ptep_get_lockless(pte); 124 + pte_t val = ptep_get(pte); 125 125 126 126 if (st->effective_prot_pte) 127 127 st->effective_prot_pte(st, val);