@@ -362,6 +362,12 @@ static void __init pud_advanced_tests(struct pgtable_debug_args *args)
362
362
vaddr &= HPAGE_PUD_MASK ;
363
363
364
364
pud = pfn_pud (args -> pud_pfn , args -> page_prot );
365
+ /*
366
+ * Some architectures have debug checks to make sure
367
+ * huge pud mapping are only found with devmap entries
368
+ * For now test with only devmap entries.
369
+ */
370
+ pud = pud_mkdevmap (pud );
365
371
set_pud_at (args -> mm , vaddr , args -> pudp , pud );
366
372
flush_dcache_page (page );
367
373
pudp_set_wrprotect (args -> mm , vaddr , args -> pudp );
@@ -374,6 +380,7 @@ static void __init pud_advanced_tests(struct pgtable_debug_args *args)
374
380
WARN_ON (!pud_none (pud ));
375
381
#endif /* __PAGETABLE_PMD_FOLDED */
376
382
pud = pfn_pud (args -> pud_pfn , args -> page_prot );
383
+ pud = pud_mkdevmap (pud );
377
384
pud = pud_wrprotect (pud );
378
385
pud = pud_mkclean (pud );
379
386
set_pud_at (args -> mm , vaddr , args -> pudp , pud );
@@ -391,6 +398,7 @@ static void __init pud_advanced_tests(struct pgtable_debug_args *args)
391
398
#endif /* __PAGETABLE_PMD_FOLDED */
392
399
393
400
pud = pfn_pud (args -> pud_pfn , args -> page_prot );
401
+ pud = pud_mkdevmap (pud );
394
402
pud = pud_mkyoung (pud );
395
403
set_pud_at (args -> mm , vaddr , args -> pudp , pud );
396
404
flush_dcache_page (page );
0 commit comments