Lines Matching refs:pud
73 DEFINE_POPULATE(p4d_populate, p4d, pud, init)
75 DEFINE_POPULATE(pud_populate, pud, pmd, init)
89 DEFINE_ENTRY(pud, pud, init)
259 pud_t *pud = (pud_t *)spp_getpage(); in fill_pud() local
260 p4d_populate(&init_mm, p4d, pud); in fill_pud()
261 if (pud != pud_offset(p4d, 0)) in fill_pud()
263 pud, pud_offset(p4d, 0)); in fill_pud()
268 static pmd_t *fill_pmd(pud_t *pud, unsigned long vaddr) in fill_pmd() argument
270 if (pud_none(*pud)) { in fill_pmd()
272 pud_populate(&init_mm, pud, pmd); in fill_pmd()
273 if (pmd != pmd_offset(pud, 0)) in fill_pmd()
275 pmd, pmd_offset(pud, 0)); in fill_pmd()
277 return pmd_offset(pud, vaddr); in fill_pmd()
291 static void __set_pte_vaddr(pud_t *pud, unsigned long vaddr, pte_t new_pte) in __set_pte_vaddr() argument
293 pmd_t *pmd = fill_pmd(pud, vaddr); in __set_pte_vaddr()
308 pud_t *pud = fill_pud(p4d, vaddr); in set_pte_vaddr_p4d() local
310 __set_pte_vaddr(pud, vaddr, new_pte); in set_pte_vaddr_p4d()
315 pud_t *pud = pud_page + pud_index(vaddr); in set_pte_vaddr_pud() local
317 __set_pte_vaddr(pud, vaddr, new_pte); in set_pte_vaddr_pud()
342 pud_t *pud; in populate_extra_pmd() local
346 pud = fill_pud(p4d, vaddr); in populate_extra_pmd()
347 return fill_pmd(pud, vaddr); in populate_extra_pmd()
366 pud_t *pud; in __init_extra_mapping() local
382 pud = (pud_t *) spp_getpage(); in __init_extra_mapping()
383 set_p4d(p4d, __p4d(__pa(pud) | _KERNPG_TABLE | in __init_extra_mapping()
386 pud = pud_offset(p4d, (unsigned long)__va(phys)); in __init_extra_mapping()
387 if (pud_none(*pud)) { in __init_extra_mapping()
389 set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE | in __init_extra_mapping()
392 pmd = pmd_offset(pud, phys); in __init_extra_mapping()
597 pud_t *pud; in phys_pud_init() local
602 pud = pud_page + pud_index(vaddr); in phys_pud_init()
611 set_pud_init(pud, __pud(0), init); in phys_pud_init()
615 if (!pud_none(*pud)) { in phys_pud_init()
616 if (!pud_large(*pud)) { in phys_pud_init()
617 pmd = pmd_offset(pud, 0); in phys_pud_init()
642 prot = pte_pgprot(pte_clrhuge(*(pte_t *)pud)); in phys_pud_init()
651 set_pte_init((pte_t *)pud, in phys_pud_init()
665 pud_populate_init(&init_mm, pud, pmd, init); in phys_pud_init()
690 pud_t *pud; in phys_p4d_init() local
707 pud = pud_offset(p4d, 0); in phys_p4d_init()
708 paddr_last = phys_pud_init(pud, paddr, __pa(vaddr_end), in phys_p4d_init()
713 pud = alloc_low_page(); in phys_p4d_init()
714 paddr_last = phys_pud_init(pud, paddr, __pa(vaddr_end), in phys_p4d_init()
718 p4d_populate_init(&init_mm, p4d, pud, init); in phys_p4d_init()
1022 static void __meminit free_pmd_table(pmd_t *pmd_start, pud_t *pud) in free_pmd_table() argument
1034 free_pagetable(pud_page(*pud), 0); in free_pmd_table()
1036 pud_clear(pud); in free_pmd_table()
1042 pud_t *pud; in free_pud_table() local
1046 pud = pud_start + i; in free_pud_table()
1047 if (!pud_none(*pud)) in free_pud_table()
1156 pud_t *pud; in remove_pud_table() local
1158 pud = pud_start + pud_index(addr); in remove_pud_table()
1159 for (; addr < end; addr = next, pud++) { in remove_pud_table()
1162 if (!pud_present(*pud)) in remove_pud_table()
1165 if (pud_large(*pud) && in remove_pud_table()
1169 pud_clear(pud); in remove_pud_table()
1175 pmd_base = pmd_offset(pud, 0); in remove_pud_table()
1177 free_pmd_table(pmd_base, pud); in remove_pud_table()
1293 pud_t *pud; in preallocate_vmalloc_pages() local
1314 pud = pud_alloc(&init_mm, p4d, addr); in preallocate_vmalloc_pages()
1315 if (!pud) in preallocate_vmalloc_pages()
1423 pud_t *pud; in kern_addr_valid() local
1438 pud = pud_offset(p4d, addr); in kern_addr_valid()
1439 if (!pud_present(*pud)) in kern_addr_valid()
1442 if (pud_large(*pud)) in kern_addr_valid()
1443 return pfn_valid(pud_pfn(*pud)); in kern_addr_valid()
1445 pmd = pmd_offset(pud, addr); in kern_addr_valid()
1542 pud_t *pud; in vmemmap_populate_hugepages() local
1556 pud = vmemmap_pud_populate(p4d, addr, node); in vmemmap_populate_hugepages()
1557 if (!pud) in vmemmap_populate_hugepages()
1560 pmd = pmd_offset(pud, addr); in vmemmap_populate_hugepages()
1635 pud_t *pud; in register_page_bootmem_memmap() local
1657 pud = pud_offset(p4d, addr); in register_page_bootmem_memmap()
1658 if (pud_none(*pud)) { in register_page_bootmem_memmap()
1662 get_page_bootmem(section_nr, pud_page(*pud), MIX_SECTION_INFO); in register_page_bootmem_memmap()
1666 pmd = pmd_offset(pud, addr); in register_page_bootmem_memmap()
1680 pmd = pmd_offset(pud, addr); in register_page_bootmem_memmap()