Lines Matching refs:p4d
310 static int modify_pud_table(p4d_t *p4d, unsigned long addr, unsigned long end, in modify_pud_table() argument
321 pud = pud_offset(p4d, addr); in modify_pud_table()
364 static void try_free_pud_table(p4d_t *p4d, unsigned long start) in try_free_pud_table() argument
378 pud = pud_offset(p4d, start); in try_free_pud_table()
383 vmem_free_pages(p4d_deref(*p4d), CRST_ALLOC_ORDER); in try_free_pud_table()
384 p4d_clear(p4d); in try_free_pud_table()
392 p4d_t *p4d; in modify_p4d_table() local
395 p4d = p4d_offset(pgd, addr); in modify_p4d_table()
396 for (; addr < end; addr = next, p4d++) { in modify_p4d_table()
399 if (p4d_none(*p4d)) in modify_p4d_table()
401 } else if (p4d_none(*p4d)) { in modify_p4d_table()
405 p4d_populate(&init_mm, p4d, pud); in modify_p4d_table()
407 ret = modify_pud_table(p4d, addr, next, add, direct); in modify_p4d_table()
411 try_free_pud_table(p4d, addr & P4D_MASK); in modify_p4d_table()
421 p4d_t *p4d; in try_free_p4d_table() local
432 p4d = p4d_offset(pgd, start); in try_free_p4d_table()
433 for (i = 0; i < PTRS_PER_P4D; i++, p4d++) { in try_free_p4d_table()
434 if (!p4d_none(*p4d)) in try_free_p4d_table()
447 p4d_t *p4d; in modify_pagetable() local
459 p4d = vmem_crst_alloc(_REGION2_ENTRY_EMPTY); in modify_pagetable()
460 if (!p4d) in modify_pagetable()
462 pgd_populate(&init_mm, pgd, p4d); in modify_pagetable()