pasid_table
struct pasid_table *pasid_table; /* pasid table */
iommu_free_pages(pasid_table->table);
kfree(pasid_table);
struct pasid_table *intel_pasid_get_table(struct device *dev)
return info->pasid_table;
if (!info || !info->pasid_table)
return info->pasid_table->max_pasid;
struct pasid_table *pasid_table;
pasid_table = intel_pasid_get_table(dev);
if (WARN_ON(!pasid_table || pasid >= intel_pasid_get_dev_max_id(dev)))
dir = pasid_table->table;
struct pasid_table *pasid_table;
if (WARN_ON(info->pasid_table))
pasid_table = kzalloc_obj(*pasid_table);
if (!pasid_table)
kfree(pasid_table);
pasid_table->table = dir;
pasid_table->max_pasid = 1 << (order + PAGE_SHIFT + 3);
info->pasid_table = pasid_table;
clflush_cache_range(pasid_table->table, (1 << order) * PAGE_SIZE);
static unsigned long context_get_sm_pds(struct pasid_table *table)
struct pasid_table *table = info->pasid_table;
struct pasid_table *pasid_table;
if (!info || !dev_is_pci(dev) || !info->pasid_table)
pasid_table = info->pasid_table;
info->pasid_table = NULL;
dir = pasid_table->table;
max_pde = pasid_table->max_pasid >> PASID_PDE_SHIFT;
struct pasid_table *intel_pasid_get_table(struct device *dev);