Lines Matching defs:pmd
151 static int __ref modify_pte_table(pmd_t *pmd, unsigned long addr,
162 pte = pte_offset_kernel(pmd, addr);
192 static void try_free_pte_table(pmd_t *pmd, unsigned long start)
198 pte = pte_offset_kernel(pmd, start);
203 vmem_pte_free(__va(pmd_deref(*pmd)));
204 pmd_clear(pmd);
213 pmd_t *pmd;
220 pmd = pmd_offset(pud, addr);
221 for (; addr < end; addr = next, pmd++) {
224 if (pmd_none(*pmd))
226 if (pmd_large(*pmd) && !add) {
230 vmem_free_pages(pmd_deref(*pmd), get_order(PMD_SIZE));
231 pmd_clear(pmd);
234 vmem_free_pages(pmd_deref(*pmd), get_order(PMD_SIZE));
235 pmd_clear(pmd);
239 } else if (pmd_none(*pmd)) {
244 pmd_val(*pmd) = addr | prot;
259 pmd_val(*pmd) = __pa(new_page) | prot;
270 pmd_populate(&init_mm, pmd, pte);
271 } else if (pmd_large(*pmd)) {
276 ret = modify_pte_table(pmd, addr, next, add, direct);
280 try_free_pte_table(pmd, addr & PMD_MASK);
292 pmd_t *pmd;
302 pmd = pmd_offset(pud, start);
303 for (i = 0; i < PTRS_PER_PMD; i++, pmd++)
304 if (!pmd_none(*pmd))
316 pmd_t *pmd;
344 pmd = vmem_crst_alloc(_SEGMENT_ENTRY_EMPTY);
345 if (!pmd)
347 pud_populate(&init_mm, pud, pmd);