Lines Matching refs:pgtable
316 static u64 *fetch_pte(struct amd_io_pgtable *pgtable, in fetch_pte() argument
325 if (address > PM_LEVEL_SIZE(pgtable->mode)) in fetch_pte()
328 level = pgtable->mode - 1; in fetch_pte()
329 pte = &pgtable->root[PM_LEVEL_INDEX(level, address)]; in fetch_pte()
462 struct amd_io_pgtable *pgtable = io_pgtable_ops_to_data(ops); in iommu_v1_unmap_page() local
472 pte = fetch_pte(pgtable, iova, &unmap_size); in iommu_v1_unmap_page()
492 struct amd_io_pgtable *pgtable = io_pgtable_ops_to_data(ops); in iommu_v1_iova_to_phys() local
496 pte = fetch_pte(pgtable, iova, &pte_pgsize); in iommu_v1_iova_to_phys()
512 struct amd_io_pgtable *pgtable = container_of(iop, struct amd_io_pgtable, iop); in v1_free_pgtable() local
517 if (pgtable->mode == PAGE_MODE_NONE) in v1_free_pgtable()
520 dom = container_of(pgtable, struct protection_domain, iop); in v1_free_pgtable()
529 BUG_ON(pgtable->mode < PAGE_MODE_NONE || in v1_free_pgtable()
530 pgtable->mode > PAGE_MODE_6_LEVEL); in v1_free_pgtable()
532 root = (unsigned long)pgtable->root; in v1_free_pgtable()
533 freelist = free_sub_pt(root, pgtable->mode, freelist); in v1_free_pgtable()
540 struct amd_io_pgtable *pgtable = io_pgtable_cfg_to_data(cfg); in v1_alloc_pgtable() local
547 pgtable->iop.ops.map = iommu_v1_map_page; in v1_alloc_pgtable()
548 pgtable->iop.ops.unmap = iommu_v1_unmap_page; in v1_alloc_pgtable()
549 pgtable->iop.ops.iova_to_phys = iommu_v1_iova_to_phys; in v1_alloc_pgtable()
551 return &pgtable->iop; in v1_alloc_pgtable()