Lines Matching refs:active_allocator
75 static struct ioasid_allocator_data *active_allocator = &default_allocator;
158 WARN_ON(active_allocator != &default_allocator);
160 if (xa_empty(&active_allocator->xa)) {
161 rcu_assign_pointer(active_allocator, ia_data);
232 rcu_assign_pointer(active_allocator, &default_allocator);
233 } else if (pallocator == active_allocator) {
234 rcu_assign_pointer(active_allocator,
274 ioasid_data = xa_load(&active_allocator->xa, ioasid);
323 adata = active_allocator->flags & IOASID_ALLOCATOR_CUSTOM ? active_allocator->ops->pdata : data;
324 id = active_allocator->ops->alloc(min, max, adata);
326 pr_err("Failed ASID allocation %lu\n", active_allocator->flags);
330 if ((active_allocator->flags & IOASID_ALLOCATOR_CUSTOM) &&
331 xa_alloc(&active_allocator->xa, &id, data, XA_LIMIT(id, id), GFP_ATOMIC)) {
334 active_allocator->ops->free(id, active_allocator->ops->pdata);
357 ioasid_data = xa_load(&active_allocator->xa, ioasid);
363 active_allocator->ops->free(ioasid, active_allocator->ops->pdata);
365 if (active_allocator->flags & IOASID_ALLOCATOR_CUSTOM) {
366 ioasid_data = xa_erase(&active_allocator->xa, ioasid);
397 idata = rcu_dereference(active_allocator);