Lines Matching refs:p4d
73 DEFINE_POPULATE(p4d_populate, p4d, pud, init)
74 DEFINE_POPULATE(pgd_populate, pgd, p4d, init)
88 DEFINE_ENTRY(p4d, p4d, init)
187 p4d_t *p4d; in sync_global_pgds_l4() local
191 p4d = p4d_offset(pgd, addr); in sync_global_pgds_l4()
196 if (!p4d_none(*p4d_ref) && !p4d_none(*p4d)) in sync_global_pgds_l4()
197 BUG_ON(p4d_pgtable(*p4d) in sync_global_pgds_l4()
200 if (p4d_none(*p4d)) in sync_global_pgds_l4()
201 set_p4d(p4d, *p4d_ref); in sync_global_pgds_l4()
247 p4d_t *p4d = (p4d_t *)spp_getpage(); in fill_p4d() local
248 pgd_populate(&init_mm, pgd, p4d); in fill_p4d()
249 if (p4d != p4d_offset(pgd, 0)) in fill_p4d()
251 p4d, p4d_offset(pgd, 0)); in fill_p4d()
256 static pud_t *fill_pud(p4d_t *p4d, unsigned long vaddr) in fill_pud() argument
258 if (p4d_none(*p4d)) { in fill_pud()
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()
265 return pud_offset(p4d, vaddr); in fill_pud()
307 p4d_t *p4d = p4d_page + p4d_index(vaddr); in set_pte_vaddr_p4d() local
308 pud_t *pud = fill_pud(p4d, vaddr); in set_pte_vaddr_p4d()
341 p4d_t *p4d; in populate_extra_pmd() local
345 p4d = fill_p4d(pgd, vaddr); in populate_extra_pmd()
346 pud = fill_pud(p4d, vaddr); in populate_extra_pmd()
365 p4d_t *p4d; in __init_extra_mapping() local
376 p4d = (p4d_t *) spp_getpage(); in __init_extra_mapping()
377 set_pgd(pgd, __pgd(__pa(p4d) | _KERNPG_TABLE | in __init_extra_mapping()
380 p4d = p4d_offset(pgd, (unsigned long)__va(phys)); in __init_extra_mapping()
381 if (p4d_none(*p4d)) { 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()
689 p4d_t *p4d = p4d_page + p4d_index(vaddr); in phys_p4d_init() local
702 set_p4d_init(p4d, __p4d(0), init); in phys_p4d_init()
706 if (!p4d_none(*p4d)) { in phys_p4d_init()
707 pud = pud_offset(p4d, 0); in phys_p4d_init()
718 p4d_populate_init(&init_mm, p4d, pud, init); in phys_p4d_init()
741 p4d_t *p4d; in __kernel_physical_mapping_init() local
746 p4d = (p4d_t *)pgd_page_vaddr(*pgd); in __kernel_physical_mapping_init()
747 paddr_last = phys_p4d_init(p4d, __pa(vaddr), in __kernel_physical_mapping_init()
754 p4d = alloc_low_page(); in __kernel_physical_mapping_init()
755 paddr_last = phys_p4d_init(p4d, __pa(vaddr), __pa(vaddr_end), in __kernel_physical_mapping_init()
760 pgd_populate_init(&init_mm, pgd, p4d, init); in __kernel_physical_mapping_init()
763 (pud_t *) p4d, init); in __kernel_physical_mapping_init()
1041 static void __meminit free_pud_table(pud_t *pud_start, p4d_t *p4d) in free_pud_table() argument
1053 free_pagetable(p4d_page(*p4d), 0); in free_pud_table()
1055 p4d_clear(p4d); in free_pud_table()
1191 p4d_t *p4d; in remove_p4d_table() local
1193 p4d = p4d_start + p4d_index(addr); in remove_p4d_table()
1194 for (; addr < end; addr = next, p4d++) { in remove_p4d_table()
1197 if (!p4d_present(*p4d)) in remove_p4d_table()
1200 BUILD_BUG_ON(p4d_large(*p4d)); in remove_p4d_table()
1202 pud_base = pud_offset(p4d, 0); in remove_p4d_table()
1210 free_pud_table(pud_base, p4d); in remove_p4d_table()
1225 p4d_t *p4d; in remove_pagetable() local
1234 p4d = p4d_offset(pgd, 0); in remove_pagetable()
1235 remove_p4d_table(p4d, addr, next, altmap, direct); in remove_pagetable()
1293 p4d_t *p4d; in preallocate_vmalloc_pages() local
1297 p4d = p4d_alloc(&init_mm, pgd, addr); in preallocate_vmalloc_pages()
1298 if (!p4d) in preallocate_vmalloc_pages()
1315 pud = pud_alloc(&init_mm, p4d, addr); in preallocate_vmalloc_pages()
1423 p4d_t *p4d; in kern_addr_valid() local
1435 p4d = p4d_offset(pgd, addr); in kern_addr_valid()
1436 if (!p4d_present(*p4d)) in kern_addr_valid()
1439 pud = pud_offset(p4d, addr); in kern_addr_valid()
1542 p4d_t *p4d; in vmemmap_populate_hugepages() local
1553 p4d = vmemmap_p4d_populate(pgd, addr, node); in vmemmap_populate_hugepages()
1554 if (!p4d) in vmemmap_populate_hugepages()
1557 pud = vmemmap_pud_populate(p4d, addr, node); in vmemmap_populate_hugepages()
1635 p4d_t *p4d; in register_page_bootmem_memmap() local
1651 p4d = p4d_offset(pgd, addr); in register_page_bootmem_memmap()
1652 if (p4d_none(*p4d)) { in register_page_bootmem_memmap()
1656 get_page_bootmem(section_nr, p4d_page(*p4d), MIX_SECTION_INFO); in register_page_bootmem_memmap()
1658 pud = pud_offset(p4d, addr); in register_page_bootmem_memmap()