Lines Matching refs:pgtable
14 #include <linux/io-pgtable.h>
198 static u64 *fetch_pte(struct amd_io_pgtable *pgtable,
205 pte = &pgtable->pgd[PM_LEVEL_INDEX(level, iova)];
293 struct amd_io_pgtable *pgtable = io_pgtable_ops_to_data(ops);
294 struct io_pgtable_cfg *cfg = &pgtable->iop.cfg;
304 pte = fetch_pte(pgtable, iova, &unmap_size);
319 struct amd_io_pgtable *pgtable = io_pgtable_ops_to_data(ops);
323 pte = fetch_pte(pgtable, iova, &pte_pgsize);
360 struct amd_io_pgtable *pgtable = container_of(iop, struct amd_io_pgtable, iop);
362 pdom = container_of(pgtable, struct protection_domain, iop);
373 free_pgtable(pgtable->pgd, get_pgtable_level());
378 struct amd_io_pgtable *pgtable = io_pgtable_cfg_to_data(cfg);
383 pgtable->pgd = alloc_pgtable_page(pdom->nid, GFP_ATOMIC);
384 if (!pgtable->pgd)
387 ret = amd_iommu_domain_set_gcr3(&pdom->domain, 0, iommu_virt_to_phys(pgtable->pgd));
394 pgtable->iop.ops.map_pages = iommu_v2_map_pages;
395 pgtable->iop.ops.unmap_pages = iommu_v2_unmap_pages;
396 pgtable->iop.ops.iova_to_phys = iommu_v2_iova_to_phys;
403 return &pgtable->iop;
406 free_pgtable_page(pgtable->pgd);