Lines Matching defs:pmd

673 	pmd_t *pmd;
707 pmd = pmd_offset(pud, address);
708 if (pmd_none(*pmd))
712 if (pmd_leaf(*pmd) || !pmd_present(*pmd))
713 return (pte_t *)pmd;
715 *nx |= pmd_flags(*pmd) & _PAGE_NX;
716 *rw &= pmd_flags(*pmd) & _PAGE_RW;
720 return pte_offset_kernel(pmd, address);
739 * Note: We return pud and pmd either when the entry is marked large
837 * Set the new pmd in all the pgds we know about:
851 pmd_t *pmd;
856 pmd = pmd_offset(pud, address);
857 set_pte_atomic((pte_t *)pmd, pte);
1124 * even on a non present pmd.
1215 static bool try_to_free_pmd_page(pmd_t *pmd)
1220 if (!pmd_none(pmd[i]))
1223 free_page((unsigned long)pmd);
1227 static bool unmap_pte_range(pmd_t *pmd, unsigned long start, unsigned long end)
1229 pte_t *pte = pte_offset_kernel(pmd, start);
1238 if (try_to_free_pte_page((pte_t *)pmd_page_vaddr(*pmd))) {
1239 pmd_clear(pmd);
1245 static void __unmap_pmd_range(pud_t *pud, pmd_t *pmd,
1248 if (unmap_pte_range(pmd, start, end))
1255 pmd_t *pmd = pmd_offset(pud, start);
1264 __unmap_pmd_range(pud, pmd, start, pre_end);
1267 pmd++;
1274 if (pmd_leaf(*pmd))
1275 pmd_clear(pmd);
1277 __unmap_pmd_range(pud, pmd, start, start + PMD_SIZE);
1280 pmd++;
1287 return __unmap_pmd_range(pud, pmd, start, end);
1340 static int alloc_pte_page(pmd_t *pmd)
1346 set_pmd(pmd, __pmd(__pa(pte) | _KERNPG_TABLE));
1352 pmd_t *pmd = (pmd_t *)get_zeroed_page(GFP_KERNEL);
1353 if (!pmd)
1356 set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE));
1362 unsigned num_pages, pmd_t *pmd, pgprot_t pgprot)
1366 pte = pte_offset_kernel(pmd, start);
1384 pmd_t *pmd;
1401 pmd = pmd_offset(pud, start);
1402 if (pmd_none(*pmd))
1403 if (alloc_pte_page(pmd))
1406 populate_pte(cpa, start, pre_end, cur_pages, pmd, pgprot);
1428 pmd = pmd_offset(pud, start);
1430 set_pmd(pmd, pmd_mkhuge(pfn_pmd(cpa->pfn,
1442 pmd = pmd_offset(pud, start);
1443 if (pmd_none(*pmd))
1444 if (alloc_pte_page(pmd))
1448 pmd, pgprot);