Lines Matching refs:pmd
165 static int __ref modify_pte_table(pmd_t *pmd, unsigned long addr,
177 pte = pte_offset_kernel(pmd, addr);
207 static void try_free_pte_table(pmd_t *pmd, unsigned long start)
213 pte = pte_offset_kernel(pmd, start);
218 vmem_pte_free((unsigned long *) pmd_deref(*pmd));
219 pmd_clear(pmd);
229 pmd_t *pmd;
236 pmd = pmd_offset(pud, addr);
237 for (; addr < end; addr = next, pmd++) {
240 if (pmd_none(*pmd))
242 if (pmd_leaf(*pmd)) {
246 vmem_free_pages(pmd_deref(*pmd), get_order(PMD_SIZE), altmap);
247 pmd_clear(pmd);
250 vmem_free_pages(pmd_deref(*pmd), get_order(PMD_SIZE), altmap);
251 pmd_clear(pmd);
255 } else if (pmd_none(*pmd)) {
260 set_pmd(pmd, __pmd(__pa(addr) | prot));
275 set_pmd(pmd, __pmd(__pa(new_page) | prot));
286 pmd_populate(&init_mm, pmd, pte);
287 } else if (pmd_leaf(*pmd)) {
292 ret = modify_pte_table(pmd, addr, next, add, direct, altmap);
296 try_free_pte_table(pmd, addr & PMD_MASK);
307 pmd_t *pmd;
310 pmd = pmd_offset(pud, start);
311 for (i = 0; i < PTRS_PER_PMD; i++, pmd++)
312 if (!pmd_none(*pmd))
324 pmd_t *pmd;
352 pmd = vmem_crst_alloc(_SEGMENT_ENTRY_EMPTY);
353 if (!pmd)
355 pud_populate(&init_mm, pud, pmd);
576 pmd_t *pmd;
601 pmd = vmem_crst_alloc(_SEGMENT_ENTRY_EMPTY);
602 if (!pmd)
604 pud_populate(&init_mm, pud, pmd);
608 pmd = pmd_offset(pud, addr);
609 if (pmd_none(*pmd)) {
615 pmd_populate(&init_mm, pmd, pte);
616 } else if (WARN_ON_ONCE(pmd_leaf(*pmd))) {
619 ptep = pte_offset_kernel(pmd, addr);