Lines Matching defs:pmd

61 void ___pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd)
63 struct page *page = virt_to_page(pmd);
64 paravirt_release_pmd(__pa(pmd) >> PAGE_SHIFT);
156 * kernel pmd is shared. If PAE were not to share the pmd a similar
172 * Also, if we're in a paravirt environment where the kernel pmd is
188 void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
190 paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT);
193 reserved at the pmd (PDPT) level. */
194 set_pud(pudp, __pud(__pa(pmd) | _PAGE_PRESENT));
235 pmd_t *pmd = (pmd_t *)__get_free_page(gfp);
236 if (!pmd)
238 if (pmd && !pgtable_pmd_page_ctor(virt_to_page(pmd))) {
239 free_page((unsigned long)pmd);
240 pmd = NULL;
243 if (pmd)
245 pmds[i] = pmd;
257 * Mop up any pmd pages which may still be attached to the pgd.
258 * Normally they will be freed by munmap/exit_mmap, but any pmd we
267 pmd_t *pmd = (pmd_t *)pgd_page_vaddr(pgd);
272 pmd_free(mm, pmd);
309 pmd_t *pmd = pmds[i];
312 memcpy(pmd, (pmd_t *)pgd_page_vaddr(swapper_pg_dir[i]),
315 pud_populate(mm, pud, pmd);
336 pmd_t *pmd = pmds[i];
338 memcpy(pmd, (pmd_t *)pgd_page_vaddr(*s_pgd),
341 pud_populate(mm, u_pud, pmd);
371 * shared kernel pmd. And this requires a whole page for pgd.
378 * shared kernel pmd. Shared kernel pmd does not require a whole
510 * We had a write-protection fault here and changed the pmd
730 int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
743 if (pmd_present(*pmd) && !pmd_huge(*pmd))
746 set_pte((pte_t *)pmd, pfn_pte(
773 int pmd_clear_huge(pmd_t *pmd)
775 if (pmd_large(*pmd)) {
776 pmd_clear(pmd);
793 * pud_free_pmd_page - Clear pud entry and free pmd page.
804 pmd_t *pmd, *pmd_sv;
808 pmd = pud_pgtable(*pud);
814 pmd_sv[i] = pmd[i];
815 if (!pmd_none(pmd[i]))
816 pmd_clear(&pmd[i]);
833 pgtable_pmd_page_dtor(virt_to_page(pmd));
834 free_page((unsigned long)pmd);
840 * pmd_free_pte_page - Clear pmd entry and free pte page.
841 * @pmd: Pointer to a PMD.
842 * @addr: Virtual address associated with pmd.
844 * Context: The pmd range has been unmapped and TLB purged.
847 int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
851 pte = (pte_t *)pmd_page_vaddr(*pmd);
852 pmd_clear(pmd);
871 * does not update sync'd pmd entries. See vmalloc_sync_one().
873 int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
875 return pmd_none(*pmd);