Lines Matching defs:pasid_table
91 struct pasid_table *pasid_table)
93 info->pasid_table = pasid_table;
94 list_add(&info->table, &pasid_table->dev);
99 struct pasid_table *pasid_table)
101 info->pasid_table = NULL;
106 struct pasid_table **pasid_table;
119 info->pasid_table) {
120 *data->pasid_table = info->pasid_table;
145 struct pasid_table *pasid_table;
154 if (WARN_ON(!info || !dev_is_pci(dev) || info->pasid_table))
158 data.pasid_table = &pasid_table;
164 pasid_table = kzalloc(sizeof(*pasid_table), GFP_KERNEL);
165 if (!pasid_table)
167 INIT_LIST_HEAD(&pasid_table->dev);
178 kfree(pasid_table);
182 pasid_table->table = page_address(pages);
183 pasid_table->order = order;
184 pasid_table->max_pasid = 1 << (order + PAGE_SHIFT + 3);
187 device_attach_pasid_table(info, pasid_table);
190 clflush_cache_range(pasid_table->table, (1 << order) * PAGE_SIZE);
198 struct pasid_table *pasid_table;
204 if (!info || !dev_is_pci(dev) || !info->pasid_table)
207 pasid_table = info->pasid_table;
208 device_detach_pasid_table(info, pasid_table);
210 if (!list_empty(&pasid_table->dev))
214 dir = pasid_table->table;
215 max_pde = pasid_table->max_pasid >> PASID_PDE_SHIFT;
221 free_pages((unsigned long)pasid_table->table, pasid_table->order);
222 kfree(pasid_table);
225 struct pasid_table *intel_pasid_get_table(struct device *dev)
233 return info->pasid_table;
241 if (!info || !info->pasid_table)
244 return info->pasid_table->max_pasid;
250 struct pasid_table *pasid_table;
255 pasid_table = intel_pasid_get_table(dev);
256 if (WARN_ON(!pasid_table || pasid >= intel_pasid_get_dev_max_id(dev)))
259 dir = pasid_table->table;