Lines Matching defs:pmd
580 unsigned long address, pmd_t *pmd, unsigned int flags,
594 ptep = pte_offset_map_lock(mm, pmd, address, &ptl);
696 pmd_t *pmd, pmdval;
701 pmd = pmd_offset(pudp, address);
702 pmdval = pmdp_get_lockless(pmd);
708 ptl = pmd_lock(mm, pmd);
709 page = follow_devmap_pmd(vma, address, pmd, flags, &ctx->pgmap);
715 return follow_page_pte(vma, address, pmd, flags, &ctx->pgmap);
720 ptl = pmd_lock(mm, pmd);
721 if (unlikely(!pmd_present(*pmd))) {
725 if (unlikely(!pmd_trans_huge(*pmd))) {
727 return follow_page_pte(vma, address, pmd, flags, &ctx->pgmap);
731 split_huge_pmd(vma, pmd, address);
732 /* If pmd was left empty, stuff a page table in there quickly */
733 return pte_alloc(mm, pmd) ? ERR_PTR(-ENOMEM) :
734 follow_page_pte(vma, address, pmd, flags, &ctx->pgmap);
736 page = follow_trans_huge_pmd(vma, address, pmd, flags);
864 pmd_t *pmd;
884 pmd = pmd_offset(pud, address);
885 if (!pmd_present(*pmd))
887 pte = pte_offset_map(pmd, address);
2550 * walking a pgtable page that is being freed (pte is still valid but pmd
2552 * also check pmd here to make sure pmd doesn't change (corresponds to
2555 static int gup_pte_range(pmd_t pmd, pmd_t *pmdp, unsigned long addr,
2563 ptem = ptep = pte_offset_map(&pmd, addr);
2608 if (unlikely(pmd_val(pmd) != pmd_val(*pmdp)) ||
2661 static int gup_pte_range(pmd_t pmd, pmd_t *pmdp, unsigned long addr,
2989 pmd_t pmd = pmdp_get_lockless(pmdp);
2992 if (!pmd_present(pmd))
2995 if (unlikely(pmd_trans_huge(pmd) || pmd_huge(pmd) ||
2996 pmd_devmap(pmd))) {
2998 if (pmd_protnone(pmd))
3001 if (!gup_huge_pmd(pmd, pmdp, addr, next, flags,
3005 } else if (unlikely(is_hugepd(__hugepd(pmd_val(pmd))))) {
3008 * pmd format and THP pmd format
3010 if (!gup_huge_pd(__hugepd(pmd_val(pmd)), addr,
3013 } else if (!gup_pte_range(pmd, pmdp, addr, next, flags, pages, nr))