Lines Matching refs:pgtable
194 static u64 *fetch_pte(struct amd_io_pgtable *pgtable, in fetch_pte() argument
201 pte = &pgtable->pgd[PM_LEVEL_INDEX(level, iova)]; in fetch_pte()
236 struct amd_io_pgtable *pgtable = io_pgtable_ops_to_data(ops); in iommu_v2_map_pages() local
237 struct io_pgtable_cfg *cfg = &pgtable->pgtbl.cfg; in iommu_v2_map_pages()
254 pte = v2_alloc_pte(cfg->amd.nid, pgtable->pgd, in iommu_v2_map_pages()
289 struct amd_io_pgtable *pgtable = io_pgtable_ops_to_data(ops); in iommu_v2_unmap_pages() local
290 struct io_pgtable_cfg *cfg = &pgtable->pgtbl.cfg; in iommu_v2_unmap_pages()
300 pte = fetch_pte(pgtable, iova, &unmap_size); in iommu_v2_unmap_pages()
315 struct amd_io_pgtable *pgtable = io_pgtable_ops_to_data(ops); in iommu_v2_iova_to_phys() local
319 pte = fetch_pte(pgtable, iova, &pte_pgsize); in iommu_v2_iova_to_phys()
334 struct amd_io_pgtable *pgtable = container_of(iop, struct amd_io_pgtable, pgtbl); in v2_free_pgtable() local
336 if (!pgtable || !pgtable->pgd) in v2_free_pgtable()
340 free_pgtable(pgtable->pgd, get_pgtable_level()); in v2_free_pgtable()
341 pgtable->pgd = NULL; in v2_free_pgtable()
346 struct amd_io_pgtable *pgtable = io_pgtable_cfg_to_data(cfg); in v2_alloc_pgtable() local
349 pgtable->pgd = iommu_alloc_pages_node_sz(cfg->amd.nid, GFP_KERNEL, SZ_4K); in v2_alloc_pgtable()
350 if (!pgtable->pgd) in v2_alloc_pgtable()
356 pgtable->pgtbl.ops.map_pages = iommu_v2_map_pages; in v2_alloc_pgtable()
357 pgtable->pgtbl.ops.unmap_pages = iommu_v2_unmap_pages; in v2_alloc_pgtable()
358 pgtable->pgtbl.ops.iova_to_phys = iommu_v2_iova_to_phys; in v2_alloc_pgtable()
364 return &pgtable->pgtbl; in v2_alloc_pgtable()