@@ -231,10 +231,10 @@ static void __init pmd_advanced_tests(struct pgtable_debug_args *args)
231
231
set_pmd_at (args -> mm , vaddr , args -> pmdp , pmd );
232
232
flush_dcache_page (page );
233
233
pmdp_set_wrprotect (args -> mm , vaddr , args -> pmdp );
234
- pmd = READ_ONCE ( * args -> pmdp );
234
+ pmd = pmdp_get ( args -> pmdp );
235
235
WARN_ON (pmd_write (pmd ));
236
236
pmdp_huge_get_and_clear (args -> mm , vaddr , args -> pmdp );
237
- pmd = READ_ONCE ( * args -> pmdp );
237
+ pmd = pmdp_get ( args -> pmdp );
238
238
WARN_ON (!pmd_none (pmd ));
239
239
240
240
pmd = pfn_pmd (args -> pmd_pfn , args -> page_prot );
@@ -245,18 +245,18 @@ static void __init pmd_advanced_tests(struct pgtable_debug_args *args)
245
245
pmd = pmd_mkwrite (pmd , args -> vma );
246
246
pmd = pmd_mkdirty (pmd );
247
247
pmdp_set_access_flags (args -> vma , vaddr , args -> pmdp , pmd , 1 );
248
- pmd = READ_ONCE ( * args -> pmdp );
248
+ pmd = pmdp_get ( args -> pmdp );
249
249
WARN_ON (!(pmd_write (pmd ) && pmd_dirty (pmd )));
250
250
pmdp_huge_get_and_clear_full (args -> vma , vaddr , args -> pmdp , 1 );
251
- pmd = READ_ONCE ( * args -> pmdp );
251
+ pmd = pmdp_get ( args -> pmdp );
252
252
WARN_ON (!pmd_none (pmd ));
253
253
254
254
pmd = pmd_mkhuge (pfn_pmd (args -> pmd_pfn , args -> page_prot ));
255
255
pmd = pmd_mkyoung (pmd );
256
256
set_pmd_at (args -> mm , vaddr , args -> pmdp , pmd );
257
257
flush_dcache_page (page );
258
258
pmdp_test_and_clear_young (args -> vma , vaddr , args -> pmdp );
259
- pmd = READ_ONCE ( * args -> pmdp );
259
+ pmd = pmdp_get ( args -> pmdp );
260
260
WARN_ON (pmd_young (pmd ));
261
261
262
262
/* Clear the pte entries */
@@ -357,12 +357,12 @@ static void __init pud_advanced_tests(struct pgtable_debug_args *args)
357
357
set_pud_at (args -> mm , vaddr , args -> pudp , pud );
358
358
flush_dcache_page (page );
359
359
pudp_set_wrprotect (args -> mm , vaddr , args -> pudp );
360
- pud = READ_ONCE ( * args -> pudp );
360
+ pud = pudp_get ( args -> pudp );
361
361
WARN_ON (pud_write (pud ));
362
362
363
363
#ifndef __PAGETABLE_PMD_FOLDED
364
364
pudp_huge_get_and_clear (args -> mm , vaddr , args -> pudp );
365
- pud = READ_ONCE ( * args -> pudp );
365
+ pud = pudp_get ( args -> pudp );
366
366
WARN_ON (!pud_none (pud ));
367
367
#endif /* __PAGETABLE_PMD_FOLDED */
368
368
pud = pfn_pud (args -> pud_pfn , args -> page_prot );
@@ -374,12 +374,12 @@ static void __init pud_advanced_tests(struct pgtable_debug_args *args)
374
374
pud = pud_mkwrite (pud );
375
375
pud = pud_mkdirty (pud );
376
376
pudp_set_access_flags (args -> vma , vaddr , args -> pudp , pud , 1 );
377
- pud = READ_ONCE ( * args -> pudp );
377
+ pud = pudp_get ( args -> pudp );
378
378
WARN_ON (!(pud_write (pud ) && pud_dirty (pud )));
379
379
380
380
#ifndef __PAGETABLE_PMD_FOLDED
381
381
pudp_huge_get_and_clear_full (args -> vma , vaddr , args -> pudp , 1 );
382
- pud = READ_ONCE ( * args -> pudp );
382
+ pud = pudp_get ( args -> pudp );
383
383
WARN_ON (!pud_none (pud ));
384
384
#endif /* __PAGETABLE_PMD_FOLDED */
385
385
@@ -389,7 +389,7 @@ static void __init pud_advanced_tests(struct pgtable_debug_args *args)
389
389
set_pud_at (args -> mm , vaddr , args -> pudp , pud );
390
390
flush_dcache_page (page );
391
391
pudp_test_and_clear_young (args -> vma , vaddr , args -> pudp );
392
- pud = READ_ONCE ( * args -> pudp );
392
+ pud = pudp_get ( args -> pudp );
393
393
WARN_ON (pud_young (pud ));
394
394
395
395
pudp_huge_get_and_clear (args -> mm , vaddr , args -> pudp );
@@ -441,7 +441,7 @@ static void __init pmd_huge_tests(struct pgtable_debug_args *args)
441
441
WRITE_ONCE (* args -> pmdp , __pmd (0 ));
442
442
WARN_ON (!pmd_set_huge (args -> pmdp , __pfn_to_phys (args -> fixed_pmd_pfn ), args -> page_prot ));
443
443
WARN_ON (!pmd_clear_huge (args -> pmdp ));
444
- pmd = READ_ONCE ( * args -> pmdp );
444
+ pmd = pmdp_get ( args -> pmdp );
445
445
WARN_ON (!pmd_none (pmd ));
446
446
}
447
447
@@ -461,7 +461,7 @@ static void __init pud_huge_tests(struct pgtable_debug_args *args)
461
461
WRITE_ONCE (* args -> pudp , __pud (0 ));
462
462
WARN_ON (!pud_set_huge (args -> pudp , __pfn_to_phys (args -> fixed_pud_pfn ), args -> page_prot ));
463
463
WARN_ON (!pud_clear_huge (args -> pudp ));
464
- pud = READ_ONCE ( * args -> pudp );
464
+ pud = pudp_get ( args -> pudp );
465
465
WARN_ON (!pud_none (pud ));
466
466
}
467
467
#else /* !CONFIG_HAVE_ARCH_HUGE_VMAP */
@@ -490,15 +490,15 @@ static void __init pgd_basic_tests(struct pgtable_debug_args *args)
490
490
#ifndef __PAGETABLE_PUD_FOLDED
491
491
static void __init pud_clear_tests (struct pgtable_debug_args * args )
492
492
{
493
- pud_t pud = READ_ONCE ( * args -> pudp );
493
+ pud_t pud = pudp_get ( args -> pudp );
494
494
495
495
if (mm_pmd_folded (args -> mm ))
496
496
return ;
497
497
498
498
pr_debug ("Validating PUD clear\n" );
499
499
WARN_ON (pud_none (pud ));
500
500
pud_clear (args -> pudp );
501
- pud = READ_ONCE ( * args -> pudp );
501
+ pud = pudp_get ( args -> pudp );
502
502
WARN_ON (!pud_none (pud ));
503
503
}
504
504
@@ -515,7 +515,7 @@ static void __init pud_populate_tests(struct pgtable_debug_args *args)
515
515
* Hence this must not qualify as pud_bad().
516
516
*/
517
517
pud_populate (args -> mm , args -> pudp , args -> start_pmdp );
518
- pud = READ_ONCE ( * args -> pudp );
518
+ pud = pudp_get ( args -> pudp );
519
519
WARN_ON (pud_bad (pud ));
520
520
}
521
521
#else /* !__PAGETABLE_PUD_FOLDED */
@@ -526,15 +526,15 @@ static void __init pud_populate_tests(struct pgtable_debug_args *args) { }
526
526
#ifndef __PAGETABLE_P4D_FOLDED
527
527
static void __init p4d_clear_tests (struct pgtable_debug_args * args )
528
528
{
529
- p4d_t p4d = READ_ONCE ( * args -> p4dp );
529
+ p4d_t p4d = p4dp_get ( args -> p4dp );
530
530
531
531
if (mm_pud_folded (args -> mm ))
532
532
return ;
533
533
534
534
pr_debug ("Validating P4D clear\n" );
535
535
WARN_ON (p4d_none (p4d ));
536
536
p4d_clear (args -> p4dp );
537
- p4d = READ_ONCE ( * args -> p4dp );
537
+ p4d = p4dp_get ( args -> p4dp );
538
538
WARN_ON (!p4d_none (p4d ));
539
539
}
540
540
@@ -553,21 +553,21 @@ static void __init p4d_populate_tests(struct pgtable_debug_args *args)
553
553
pud_clear (args -> pudp );
554
554
p4d_clear (args -> p4dp );
555
555
p4d_populate (args -> mm , args -> p4dp , args -> start_pudp );
556
- p4d = READ_ONCE ( * args -> p4dp );
556
+ p4d = p4dp_get ( args -> p4dp );
557
557
WARN_ON (p4d_bad (p4d ));
558
558
}
559
559
560
560
static void __init pgd_clear_tests (struct pgtable_debug_args * args )
561
561
{
562
- pgd_t pgd = READ_ONCE ( * ( args -> pgdp ) );
562
+ pgd_t pgd = pgdp_get ( args -> pgdp );
563
563
564
564
if (mm_p4d_folded (args -> mm ))
565
565
return ;
566
566
567
567
pr_debug ("Validating PGD clear\n" );
568
568
WARN_ON (pgd_none (pgd ));
569
569
pgd_clear (args -> pgdp );
570
- pgd = READ_ONCE ( * args -> pgdp );
570
+ pgd = pgdp_get ( args -> pgdp );
571
571
WARN_ON (!pgd_none (pgd ));
572
572
}
573
573
@@ -586,7 +586,7 @@ static void __init pgd_populate_tests(struct pgtable_debug_args *args)
586
586
p4d_clear (args -> p4dp );
587
587
pgd_clear (args -> pgdp );
588
588
pgd_populate (args -> mm , args -> pgdp , args -> start_p4dp );
589
- pgd = READ_ONCE ( * args -> pgdp );
589
+ pgd = pgdp_get ( args -> pgdp );
590
590
WARN_ON (pgd_bad (pgd ));
591
591
}
592
592
#else /* !__PAGETABLE_P4D_FOLDED */
@@ -627,12 +627,12 @@ static void __init pte_clear_tests(struct pgtable_debug_args *args)
627
627
628
628
static void __init pmd_clear_tests (struct pgtable_debug_args * args )
629
629
{
630
- pmd_t pmd = READ_ONCE ( * args -> pmdp );
630
+ pmd_t pmd = pmdp_get ( args -> pmdp );
631
631
632
632
pr_debug ("Validating PMD clear\n" );
633
633
WARN_ON (pmd_none (pmd ));
634
634
pmd_clear (args -> pmdp );
635
- pmd = READ_ONCE ( * args -> pmdp );
635
+ pmd = pmdp_get ( args -> pmdp );
636
636
WARN_ON (!pmd_none (pmd ));
637
637
}
638
638
@@ -646,7 +646,7 @@ static void __init pmd_populate_tests(struct pgtable_debug_args *args)
646
646
* Hence this must not qualify as pmd_bad().
647
647
*/
648
648
pmd_populate (args -> mm , args -> pmdp , args -> start_ptep );
649
- pmd = READ_ONCE ( * args -> pmdp );
649
+ pmd = pmdp_get ( args -> pmdp );
650
650
WARN_ON (pmd_bad (pmd ));
651
651
}
652
652
@@ -1251,7 +1251,7 @@ static int __init init_args(struct pgtable_debug_args *args)
1251
1251
ret = - ENOMEM ;
1252
1252
goto error ;
1253
1253
}
1254
- args -> start_ptep = pmd_pgtable (READ_ONCE ( * args -> pmdp ));
1254
+ args -> start_ptep = pmd_pgtable (pmdp_get ( args -> pmdp ));
1255
1255
WARN_ON (!args -> start_ptep );
1256
1256
1257
1257
init_fixed_pfns (args );
0 commit comments