Lines Matching refs:pmd
64 pmd_t *pmd = pmd_page + pmd_index(addr); in ident_pmd_init() local
66 if (!pmd_present(*pmd)) in ident_pmd_init()
67 set_pmd(pmd, __pmd(addr | pmd_flag)); in ident_pmd_init()
77 pmd_t *pmd; in ident_pud_init() local
84 pmd = pmd_offset(pud, 0); in ident_pud_init()
85 ident_pmd_init(info->pmd_flag, pmd, addr, next); in ident_pud_init()
88 pmd = (pmd_t *)info->alloc_pgt_page(info->context); in ident_pud_init()
89 if (!pmd) in ident_pud_init()
91 ident_pmd_init(info->pmd_flag, pmd, addr, next); in ident_pud_init()
92 set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE)); in ident_pud_init()
248 pmd_t *pmd = (pmd_t *) spp_getpage(); in fill_pmd() local
249 pud_populate(&init_mm, pud, pmd); in fill_pmd()
250 if (pmd != pmd_offset(pud, 0)) in fill_pmd()
252 pmd, pmd_offset(pud, 0)); in fill_pmd()
257 static pte_t *fill_pte(pmd_t *pmd, unsigned long vaddr) in fill_pte() argument
259 if (pmd_none(*pmd)) { in fill_pte()
261 pmd_populate_kernel(&init_mm, pmd, pte); in fill_pte()
262 if (pte != pte_offset_kernel(pmd, 0)) in fill_pte()
265 return pte_offset_kernel(pmd, vaddr); in fill_pte()
271 pmd_t *pmd; in set_pte_vaddr_pud() local
275 pmd = fill_pmd(pud, vaddr); in set_pte_vaddr_pud()
276 pte = fill_pte(pmd, vaddr); in set_pte_vaddr_pud()
316 pmd_t *pmd; in populate_extra_pte() local
318 pmd = populate_extra_pmd(vaddr); in populate_extra_pte()
319 return fill_pte(pmd, vaddr); in populate_extra_pte()
330 pmd_t *pmd; in __init_extra_mapping() local
345 pmd = (pmd_t *) spp_getpage(); in __init_extra_mapping()
346 set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE | in __init_extra_mapping()
349 pmd = pmd_offset(pud, phys); in __init_extra_mapping()
350 BUG_ON(!pmd_none(*pmd)); in __init_extra_mapping()
351 set_pmd(pmd, __pmd(phys | pgprot_val(prot))); in __init_extra_mapping()
383 pmd_t *pmd = level2_kernel_pgt; in cleanup_highmap() local
393 for (; vaddr + PMD_SIZE - 1 < vaddr_end; pmd++, vaddr += PMD_SIZE) { in cleanup_highmap()
394 if (pmd_none(*pmd)) in cleanup_highmap()
397 set_pmd(pmd, __pmd(0)); in cleanup_highmap()
456 pmd_t *pmd = pmd_page + pmd_index(address); in phys_pmd_init() local
465 set_pmd(pmd, __pmd(0)); in phys_pmd_init()
469 if (pmd_val(*pmd)) { in phys_pmd_init()
470 if (!pmd_large(*pmd)) { in phys_pmd_init()
472 pte = (pte_t *)pmd_page_vaddr(*pmd); in phys_pmd_init()
496 new_prot = pte_pgprot(pte_clrhuge(*(pte_t *)pmd)); in phys_pmd_init()
502 set_pte((pte_t *)pmd, in phys_pmd_init()
514 pmd_populate_kernel(&init_mm, pmd, pte); in phys_pmd_init()
531 pmd_t *pmd; in phys_pud_init() local
545 pmd = pmd_offset(pud, 0); in phys_pud_init()
546 last_map_addr = phys_pmd_init(pmd, addr, end, in phys_pud_init()
583 pmd = alloc_low_page(); in phys_pud_init()
584 last_map_addr = phys_pmd_init(pmd, addr, end, page_size_mask, in phys_pud_init()
588 pud_populate(&init_mm, pud, pmd); in phys_pud_init()
733 static void __meminit free_pte_table(pte_t *pte_start, pmd_t *pmd) in free_pte_table() argument
745 free_pagetable(pmd_page(*pmd), 0); in free_pte_table()
747 pmd_clear(pmd); in free_pte_table()
753 pmd_t *pmd; in free_pmd_table() local
757 pmd = pmd_start + i; in free_pmd_table()
758 if (pmd_val(*pmd)) in free_pmd_table()
868 pmd_t *pmd; in remove_pmd_table() local
871 pmd = pmd_start + pmd_index(addr); in remove_pmd_table()
872 for (; addr < end; addr = next, pmd++) { in remove_pmd_table()
875 if (!pmd_present(*pmd)) in remove_pmd_table()
878 if (pmd_large(*pmd)) { in remove_pmd_table()
882 free_pagetable(pmd_page(*pmd), in remove_pmd_table()
886 pmd_clear(pmd); in remove_pmd_table()
893 page_addr = page_address(pmd_page(*pmd)); in remove_pmd_table()
896 free_pagetable(pmd_page(*pmd), in remove_pmd_table()
900 pmd_clear(pmd); in remove_pmd_table()
908 pte_base = (pte_t *)pmd_page_vaddr(*pmd); in remove_pmd_table()
910 free_pte_table(pte_base, pmd); in remove_pmd_table()
1162 pmd_t *pmd; in kern_addr_valid() local
1179 pmd = pmd_offset(pud, addr); in kern_addr_valid()
1180 if (pmd_none(*pmd)) in kern_addr_valid()
1183 if (pmd_large(*pmd)) in kern_addr_valid()
1184 return pfn_valid(pmd_pfn(*pmd)); in kern_addr_valid()
1186 pte = pte_offset_kernel(pmd, addr); in kern_addr_valid()
1243 pmd_t *pmd; in vmemmap_populate_hugepages() local
1256 pmd = pmd_offset(pud, addr); in vmemmap_populate_hugepages()
1257 if (pmd_none(*pmd)) { in vmemmap_populate_hugepages()
1266 set_pmd(pmd, __pmd(pte_val(entry))); in vmemmap_populate_hugepages()
1282 } else if (pmd_large(*pmd)) { in vmemmap_populate_hugepages()
1283 vmemmap_verify((pte_t *)pmd, node, addr, next); in vmemmap_populate_hugepages()
1315 pmd_t *pmd; in register_page_bootmem_memmap() local
1338 pmd = pmd_offset(pud, addr); in register_page_bootmem_memmap()
1339 if (pmd_none(*pmd)) in register_page_bootmem_memmap()
1341 get_page_bootmem(section_nr, pmd_page(*pmd), in register_page_bootmem_memmap()
1344 pte = pte_offset_kernel(pmd, addr); in register_page_bootmem_memmap()
1352 pmd = pmd_offset(pud, addr); in register_page_bootmem_memmap()
1353 if (pmd_none(*pmd)) in register_page_bootmem_memmap()
1357 page = pmd_page(*pmd); in register_page_bootmem_memmap()