Lines Matching refs:pasid_table

92 			  struct pasid_table *pasid_table)  in device_attach_pasid_table()  argument
94 info->pasid_table = pasid_table; in device_attach_pasid_table()
95 list_add(&info->table, &pasid_table->dev); in device_attach_pasid_table()
100 struct pasid_table *pasid_table) in device_detach_pasid_table() argument
102 info->pasid_table = NULL; in device_detach_pasid_table()
107 struct pasid_table **pasid_table; member
120 info->pasid_table) { in search_pasid_table()
121 *data->pasid_table = info->pasid_table; in search_pasid_table()
146 struct pasid_table *pasid_table; in intel_pasid_alloc_table() local
155 if (WARN_ON(!info || !dev_is_pci(dev) || info->pasid_table)) in intel_pasid_alloc_table()
159 data.pasid_table = &pasid_table; in intel_pasid_alloc_table()
165 pasid_table = kzalloc(sizeof(*pasid_table), GFP_KERNEL); in intel_pasid_alloc_table()
166 if (!pasid_table) in intel_pasid_alloc_table()
168 INIT_LIST_HEAD(&pasid_table->dev); in intel_pasid_alloc_table()
179 kfree(pasid_table); in intel_pasid_alloc_table()
183 pasid_table->table = page_address(pages); in intel_pasid_alloc_table()
184 pasid_table->order = order; in intel_pasid_alloc_table()
185 pasid_table->max_pasid = 1 << (order + PAGE_SHIFT + 3); in intel_pasid_alloc_table()
188 device_attach_pasid_table(info, pasid_table); in intel_pasid_alloc_table()
196 struct pasid_table *pasid_table; in intel_pasid_free_table() local
202 if (!info || !dev_is_pci(dev) || !info->pasid_table) in intel_pasid_free_table()
205 pasid_table = info->pasid_table; in intel_pasid_free_table()
206 device_detach_pasid_table(info, pasid_table); in intel_pasid_free_table()
208 if (!list_empty(&pasid_table->dev)) in intel_pasid_free_table()
212 dir = pasid_table->table; in intel_pasid_free_table()
213 max_pde = pasid_table->max_pasid >> PASID_PDE_SHIFT; in intel_pasid_free_table()
219 free_pages((unsigned long)pasid_table->table, pasid_table->order); in intel_pasid_free_table()
220 kfree(pasid_table); in intel_pasid_free_table()
223 struct pasid_table *intel_pasid_get_table(struct device *dev) in intel_pasid_get_table()
231 return info->pasid_table; in intel_pasid_get_table()
239 if (!info || !info->pasid_table) in intel_pasid_get_dev_max_id()
242 return info->pasid_table->max_pasid; in intel_pasid_get_dev_max_id()
248 struct pasid_table *pasid_table; in intel_pasid_get_entry() local
253 pasid_table = intel_pasid_get_table(dev); in intel_pasid_get_entry()
254 if (WARN_ON(!pasid_table || pasid >= intel_pasid_get_dev_max_id(dev))) in intel_pasid_get_entry()
257 dir = pasid_table->table; in intel_pasid_get_entry()