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()
49 for (i = 0 ; i < RDMA_RESTRACK_MAX; i++) { in rdma_restrack_clean()
50 struct xarray *xa = &dev->res[i].xa; in rdma_restrack_clean() local
52 WARN_ON(!xa_empty(xa)); in rdma_restrack_clean()
53 xa_destroy(xa); in rdma_restrack_clean()
67 XA_STATE(xas, &rt->xa, 0); in rdma_restrack_count()
68 u32 cnt = 0; in rdma_restrack_count()
70 xa_lock(&rt->xa); in rdma_restrack_count()
73 xa_unlock(&rt->xa); in rdma_restrack_count()
178 int ret = 0; in rdma_restrack_add()
193 "QP number 0x%0X and port 0x%0X", qp->qp_num, in rdma_restrack_add()
198 ret = xa_insert(&rt->xa, res->id, res, GFP_KERNEL); in rdma_restrack_add()
200 res->id = 0; in rdma_restrack_add()
206 ret = xa_insert(&rt->xa, counter->id, res, GFP_KERNEL); in rdma_restrack_add()
207 res->id = ret ? 0 : counter->id; in rdma_restrack_add()
209 ret = xa_alloc_cyclic(&rt->xa, &res->id, res, xa_limit_32b, in rdma_restrack_add()
211 ret = (ret < 0) ? ret : 0; in rdma_restrack_add()
241 xa_lock(&rt->xa); in rdma_restrack_get_byid()
242 res = xa_load(&rt->xa, id); in rdma_restrack_get_byid()
245 xa_unlock(&rt->xa); in rdma_restrack_get_byid()
296 old = xa_erase(&rt->xa, res->id); in rdma_restrack_del()