Lines Matching refs:active_allocator
76 static struct ioasid_allocator_data *active_allocator = &default_allocator; variable
159 WARN_ON(active_allocator != &default_allocator); in ioasid_register_allocator()
161 if (xa_empty(&active_allocator->xa)) { in ioasid_register_allocator()
162 rcu_assign_pointer(active_allocator, ia_data); in ioasid_register_allocator()
233 rcu_assign_pointer(active_allocator, &default_allocator); in ioasid_unregister_allocator()
234 } else if (pallocator == active_allocator) { in ioasid_unregister_allocator()
235 rcu_assign_pointer(active_allocator, in ioasid_unregister_allocator()
275 ioasid_data = xa_load(&active_allocator->xa, ioasid); in ioasid_set_data()
325 adata = active_allocator->flags & IOASID_ALLOCATOR_CUSTOM ? active_allocator->ops->pdata : data; in ioasid_alloc()
326 id = active_allocator->ops->alloc(min, max, adata); in ioasid_alloc()
328 pr_err("Failed ASID allocation %lu\n", active_allocator->flags); in ioasid_alloc()
332 if ((active_allocator->flags & IOASID_ALLOCATOR_CUSTOM) && in ioasid_alloc()
333 xa_alloc(&active_allocator->xa, &id, data, XA_LIMIT(id, id), GFP_ATOMIC)) { in ioasid_alloc()
336 active_allocator->ops->free(id, active_allocator->ops->pdata); in ioasid_alloc()
358 ioasid_data = xa_load(&active_allocator->xa, ioasid); in ioasid_get()
382 ioasid_data = xa_load(&active_allocator->xa, ioasid); in ioasid_put()
392 active_allocator->ops->free(ioasid, active_allocator->ops->pdata); in ioasid_put()
394 if (active_allocator->flags & IOASID_ALLOCATOR_CUSTOM) { in ioasid_put()
395 ioasid_data = xa_erase(&active_allocator->xa, ioasid); in ioasid_put()
427 idata = rcu_dereference(active_allocator); in ioasid_find()