• Home
  • Raw
  • Download

Lines Matching full:pmd

61 void ___pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd)  in ___pmd_free_tlb()  argument
63 struct ptdesc *ptdesc = virt_to_ptdesc(pmd); in ___pmd_free_tlb()
64 paravirt_release_pmd(__pa(pmd) >> PAGE_SHIFT); in ___pmd_free_tlb()
126 ptes in non-PAE, or shared PMD in PAE), then just copy the in pgd_ctor()
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) in pud_populate() argument
190 paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT); in pud_populate()
193 reserved at the pmd (PDPT) level. */ in pud_populate()
194 set_pud(pudp, __pud(__pa(pmd) | _PAGE_PRESENT)); in pud_populate()
239 pmd_t *pmd = NULL; in preallocate_pmds() local
251 pmd = ptdesc_address(ptdesc); 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()
315 pmd_t *pmd = pmds[i]; in pgd_prepopulate_pmd() local
318 memcpy(pmd, (pmd_t *)pgd_page_vaddr(swapper_pg_dir[i]), in pgd_prepopulate_pmd()
321 pud_populate(mm, pud, pmd); in pgd_prepopulate_pmd()
342 pmd_t *pmd = pmds[i]; in pgd_prepopulate_user_pmd() local
344 memcpy(pmd, (pmd_t *)pgd_page_vaddr(*s_pgd), in pgd_prepopulate_user_pmd()
347 pud_populate(mm, u_pud, pmd); in pgd_prepopulate_user_pmd()
377 * shared kernel pmd. And this requires a whole page for pgd. in pgtable_cache_init()
384 * shared kernel pmd. Shared kernel pmd does not require a whole in pgtable_cache_init()
523 * We had a write-protection fault here and changed the pmd in pmdp_set_access_flags()
742 * pmd_set_huge - setup kernel PMD mapping
748 int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot) in pmd_set_huge() argument
760 if (pmd_present(*pmd) && !pmd_huge(*pmd)) in pmd_set_huge()
763 set_pte((pte_t *)pmd, pfn_pte( in pmd_set_huge()
786 * pmd_clear_huge - clear kernel PMD mapping when it is set
788 * Returns 1 on success and 0 on failure (no PMD map is found).
790 int pmd_clear_huge(pmd_t *pmd) in pmd_clear_huge() argument
792 if (pmd_large(*pmd)) { in pmd_clear_huge()
793 pmd_clear(pmd); in pmd_clear_huge()
802 * pud_free_pmd_page - Clear pud entry and free pmd page.
813 pmd_t *pmd, *pmd_sv; in pud_free_pmd_page() local
817 pmd = pud_pgtable(*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()
842 pagetable_pmd_dtor(virt_to_ptdesc(pmd)); in pud_free_pmd_page()
843 free_page((unsigned long)pmd); in pud_free_pmd_page()
849 * pmd_free_pte_page - Clear pmd entry and free pte page.
850 * @pmd: Pointer to a PMD.
851 * @addr: Virtual address associated with pmd.
853 * Context: The pmd range has been unmapped and TLB purged.
856 int pmd_free_pte_page(pmd_t *pmd, unsigned long addr) in pmd_free_pte_page() argument
860 pte = (pte_t *)pmd_page_vaddr(*pmd); in pmd_free_pte_page()
861 pmd_clear(pmd); in pmd_free_pte_page()
875 * does not update sync'd pmd entries. See vmalloc_sync_one().
877 int pmd_free_pte_page(pmd_t *pmd, unsigned long addr) in pmd_free_pte_page() argument
879 return pmd_none(*pmd); in pmd_free_pte_page()
895 pmd_t pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma) in pmd_mkwrite() argument
898 return pmd_mkwrite_shstk(pmd); in pmd_mkwrite()
900 pmd = pmd_mkwrite_novma(pmd); in pmd_mkwrite()
902 return pmd_clear_saveddirty(pmd); in pmd_mkwrite()
918 void arch_check_zapped_pmd(struct vm_area_struct *vma, pmd_t pmd) in arch_check_zapped_pmd() argument
922 pmd_shstk(pmd)); in arch_check_zapped_pmd()