Lines Matching +full:0 +full:xa
21 * Return: 0 on success
34 for (i = 0; i < RDMA_RESTRACK_MAX; i++) in rdma_restrack_init()
35 xa_init_flags(&rt[i].xa, XA_FLAGS_ALLOC); in rdma_restrack_init()
37 return 0; in rdma_restrack_init()
69 for (i = 0 ; i < RDMA_RESTRACK_MAX; i++) { in rdma_restrack_clean()
70 struct xarray *xa = &dev->res[i].xa; in rdma_restrack_clean() local
72 if (!xa_empty(xa)) { in rdma_restrack_clean()
79 xa_for_each(xa, index, e) { in rdma_restrack_clean()
99 xa_destroy(xa); in rdma_restrack_clean()
116 XA_STATE(xas, &rt->xa, 0); in rdma_restrack_count()
117 u32 cnt = 0; in rdma_restrack_count()
119 xa_lock(&rt->xa); in rdma_restrack_count()
122 xa_unlock(&rt->xa); in rdma_restrack_count()
227 int ret = 0; in rdma_restrack_add()
242 "QP number 0x%0X and port 0x%0X", qp->qp_num, in rdma_restrack_add()
247 ret = xa_insert(&rt->xa, res->id, res, GFP_KERNEL); in rdma_restrack_add()
249 res->id = 0; in rdma_restrack_add()
255 ret = xa_insert(&rt->xa, counter->id, res, GFP_KERNEL); in rdma_restrack_add()
256 res->id = ret ? 0 : counter->id; in rdma_restrack_add()
258 ret = xa_alloc_cyclic(&rt->xa, &res->id, res, xa_limit_32b, in rdma_restrack_add()
260 ret = (ret < 0) ? ret : 0; in rdma_restrack_add()
290 xa_lock(&rt->xa); in rdma_restrack_get_byid()
291 res = xa_load(&rt->xa, id); in rdma_restrack_get_byid()
294 xa_unlock(&rt->xa); in rdma_restrack_get_byid()
345 old = xa_erase(&rt->xa, res->id); in rdma_restrack_del()