• Home
  • Raw
  • Download

Lines Matching full:pmd

70 void ___pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd)  in ___pmd_free_tlb()  argument
72 struct page *page = virt_to_page(pmd); in ___pmd_free_tlb()
73 paravirt_release_pmd(__pa(pmd) >> PAGE_SHIFT); in ___pmd_free_tlb()
135 ptes in non-PAE, or shared PMD in PAE), then just copy the in pgd_ctor()
165 * kernel pmd is shared. If PAE were not to share the pmd a similar
181 * Also, if we're in a paravirt environment where the kernel pmd is
197 void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd) in pud_populate() argument
199 paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT); in pud_populate()
202 reserved at the pmd (PDPT) level. */ in pud_populate()
203 set_pud(pudp, __pud(__pa(pmd) | _PAGE_PRESENT)); in pud_populate()
244 pmd_t *pmd = (pmd_t *)__get_free_page(gfp); in preallocate_pmds() local
245 if (!pmd) in preallocate_pmds()
247 if (pmd && !pgtable_pmd_page_ctor(virt_to_page(pmd))) { in preallocate_pmds()
248 free_page((unsigned long)pmd); in preallocate_pmds()
249 pmd = NULL; in preallocate_pmds()
252 if (pmd) in preallocate_pmds()
254 pmds[i] = pmd; in preallocate_pmds()
266 * Mop up any pmd pages which may still be attached to the pgd.
267 * Normally they will be freed by munmap/exit_mmap, but any pmd we
276 pmd_t *pmd = (pmd_t *)pgd_page_vaddr(pgd); in mop_up_one_pmd() local
281 pmd_free(mm, pmd); in mop_up_one_pmd()
318 pmd_t *pmd = pmds[i]; in pgd_prepopulate_pmd() local
321 memcpy(pmd, (pmd_t *)pgd_page_vaddr(swapper_pg_dir[i]), in pgd_prepopulate_pmd()
324 pud_populate(mm, pud, pmd); in pgd_prepopulate_pmd()
345 pmd_t *pmd = pmds[i]; in pgd_prepopulate_user_pmd() local
347 memcpy(pmd, (pmd_t *)pgd_page_vaddr(*s_pgd), in pgd_prepopulate_user_pmd()
350 pud_populate(mm, u_pud, pmd); in pgd_prepopulate_user_pmd()
380 * shared kernel pmd. And this requires a whole page for pgd. in pgd_cache_init()
387 * shared kernel pmd. Shared kernel pmd does not require a whole in pgd_cache_init()
520 * We had a write-protection fault here and changed the pmd in pmdp_set_access_flags()
736 * pmd_set_huge - setup kernel PMD mapping
742 int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot) in pmd_set_huge() argument
755 if (pmd_present(*pmd) && !pmd_huge(*pmd)) in pmd_set_huge()
760 set_pte((pte_t *)pmd, pfn_pte( in pmd_set_huge()
783 * pmd_clear_huge - clear kernel PMD mapping when it is set
785 * Returns 1 on success and 0 on failure (no PMD map is found).
787 int pmd_clear_huge(pmd_t *pmd) in pmd_clear_huge() argument
789 if (pmd_large(*pmd)) { in pmd_clear_huge()
790 pmd_clear(pmd); in pmd_clear_huge()
799 * pud_free_pmd_page - Clear pud entry and free pmd page.
810 pmd_t *pmd, *pmd_sv; in pud_free_pmd_page() local
817 pmd = (pmd_t *)pud_page_vaddr(*pud); in pud_free_pmd_page()
823 pmd_sv[i] = pmd[i]; in pud_free_pmd_page()
824 if (!pmd_none(pmd[i])) in pud_free_pmd_page()
825 pmd_clear(&pmd[i]); in pud_free_pmd_page()
841 free_page((unsigned long)pmd); in pud_free_pmd_page()
847 * pmd_free_pte_page - Clear pmd entry and free pte page.
848 * @pmd: Pointer to a PMD.
849 * @addr: Virtual address associated with pmd.
851 * Context: The pmd range has been unmapped and TLB purged.
854 int pmd_free_pte_page(pmd_t *pmd, unsigned long addr) in pmd_free_pte_page() argument
858 if (pmd_none(*pmd)) in pmd_free_pte_page()
861 pte = (pte_t *)pmd_page_vaddr(*pmd); in pmd_free_pte_page()
862 pmd_clear(pmd); in pmd_free_pte_page()
881 * does not update sync'd pmd entries. See vmalloc_sync_one().
883 int pmd_free_pte_page(pmd_t *pmd, unsigned long addr) in pmd_free_pte_page() argument
885 return pmd_none(*pmd); in pmd_free_pte_page()