Lines Matching refs:pasid_table

91 			  struct pasid_table *pasid_table)  in device_attach_pasid_table()  argument
93 info->pasid_table = pasid_table; in device_attach_pasid_table()
94 list_add(&info->table, &pasid_table->dev); in device_attach_pasid_table()
99 struct pasid_table *pasid_table) in device_detach_pasid_table() argument
101 info->pasid_table = NULL; in device_detach_pasid_table()
106 struct pasid_table **pasid_table; member
119 info->pasid_table) { in search_pasid_table()
120 *data->pasid_table = info->pasid_table; in search_pasid_table()
145 struct pasid_table *pasid_table; in intel_pasid_alloc_table() local
154 if (WARN_ON(!info || !dev_is_pci(dev) || info->pasid_table)) in intel_pasid_alloc_table()
158 data.pasid_table = &pasid_table; in intel_pasid_alloc_table()
164 pasid_table = kzalloc(sizeof(*pasid_table), GFP_KERNEL); in intel_pasid_alloc_table()
165 if (!pasid_table) in intel_pasid_alloc_table()
167 INIT_LIST_HEAD(&pasid_table->dev); in intel_pasid_alloc_table()
178 kfree(pasid_table); in intel_pasid_alloc_table()
182 pasid_table->table = page_address(pages); in intel_pasid_alloc_table()
183 pasid_table->order = order; in intel_pasid_alloc_table()
184 pasid_table->max_pasid = 1 << (order + PAGE_SHIFT + 3); in intel_pasid_alloc_table()
187 device_attach_pasid_table(info, pasid_table); in intel_pasid_alloc_table()
195 struct pasid_table *pasid_table; in intel_pasid_free_table() local
201 if (!info || !dev_is_pci(dev) || !info->pasid_table) in intel_pasid_free_table()
204 pasid_table = info->pasid_table; in intel_pasid_free_table()
205 device_detach_pasid_table(info, pasid_table); in intel_pasid_free_table()
207 if (!list_empty(&pasid_table->dev)) in intel_pasid_free_table()
211 dir = pasid_table->table; in intel_pasid_free_table()
212 max_pde = pasid_table->max_pasid >> PASID_PDE_SHIFT; in intel_pasid_free_table()
218 free_pages((unsigned long)pasid_table->table, pasid_table->order); in intel_pasid_free_table()
219 kfree(pasid_table); in intel_pasid_free_table()
222 struct pasid_table *intel_pasid_get_table(struct device *dev) in intel_pasid_get_table()
230 return info->pasid_table; in intel_pasid_get_table()
238 if (!info || !info->pasid_table) in intel_pasid_get_dev_max_id()
241 return info->pasid_table->max_pasid; in intel_pasid_get_dev_max_id()
247 struct pasid_table *pasid_table; in intel_pasid_get_entry() local
252 pasid_table = intel_pasid_get_table(dev); in intel_pasid_get_entry()
253 if (WARN_ON(!pasid_table || pasid >= intel_pasid_get_dev_max_id(dev))) in intel_pasid_get_entry()
256 dir = pasid_table->table; in intel_pasid_get_entry()