Lines Matching refs:pmd
395 static inline uint64_t pmd_to_hmm_pfn_flags(struct hmm_range *range, pmd_t pmd) in pmd_to_hmm_pfn_flags() argument
397 if (pmd_protnone(pmd)) in pmd_to_hmm_pfn_flags()
399 return pmd_write(pmd) ? range->flags[HMM_PFN_VALID] | in pmd_to_hmm_pfn_flags()
406 unsigned long end, uint64_t *pfns, pmd_t pmd) in hmm_vma_handle_pmd() argument
415 cpu_flags = pmd_to_hmm_pfn_flags(range, pmd); in hmm_vma_handle_pmd()
419 if (pmd_protnone(pmd) || fault || write_fault) in hmm_vma_handle_pmd()
422 pfn = pmd_pfn(pmd) + ((addr & ~PMD_MASK) >> PAGE_SHIFT); in hmm_vma_handle_pmd()
424 if (pmd_devmap(pmd)) { in hmm_vma_handle_pmd()
442 unsigned long end, uint64_t *pfns, pmd_t pmd);
562 pmd_t pmd; in hmm_vma_walk_pmd() local
565 pmd = READ_ONCE(*pmdp); in hmm_vma_walk_pmd()
566 if (pmd_none(pmd)) in hmm_vma_walk_pmd()
569 if (thp_migration_supported() && is_pmd_migration_entry(pmd)) { in hmm_vma_walk_pmd()
586 } else if (!pmd_present(pmd)) in hmm_vma_walk_pmd()
589 if (pmd_devmap(pmd) || pmd_trans_huge(pmd)) { in hmm_vma_walk_pmd()
599 pmd = pmd_read_atomic(pmdp); in hmm_vma_walk_pmd()
601 if (!pmd_devmap(pmd) && !pmd_trans_huge(pmd)) in hmm_vma_walk_pmd()
605 return hmm_vma_handle_pmd(walk, addr, end, &pfns[i], pmd); in hmm_vma_walk_pmd()
614 if (pmd_bad(pmd)) in hmm_vma_walk_pmd()