xa                 18 crypto/dh.c    	MPI xa;	/* Value is guaranteed to be set. */
xa                 26 crypto/dh.c    	mpi_free(ctx->xa);
xa                 39 crypto/dh.c    	return mpi_powm(val, base, ctx->xa, ctx->p);
xa                 89 crypto/dh.c    	ctx->xa = mpi_read_raw_data(params.key, params.key_size);
xa                 90 crypto/dh.c    	if (!ctx->xa)
xa                160 crypto/dh.c    	if (unlikely(!ctx->xa)) {
xa                996 drivers/cdrom/cdrom.c 	tracks->xa = 0;
xa               1026 drivers/cdrom/cdrom.c 				tracks->xa++;
xa               1037 drivers/cdrom/cdrom.c 	       tracks->cdi, tracks->xa);
xa               2590 drivers/cdrom/cdrom.c 		if (!tracks.data && !tracks.cdi && !tracks.xa)
xa               2598 drivers/cdrom/cdrom.c 	if (tracks.xa > 0)
xa                129 drivers/crypto/qat/qat_common/qat_asym_algs.c 			dma_addr_t xa;
xa                133 drivers/crypto/qat/qat_common/qat_asym_algs.c 			dma_addr_t xa;
xa                149 drivers/crypto/qat/qat_common/qat_asym_algs.c 	char *xa;
xa                269 drivers/crypto/qat/qat_common/qat_asym_algs.c 	if (unlikely(!ctx->xa))
xa                297 drivers/crypto/qat/qat_common/qat_asym_algs.c 		qat_req->in.dh.in.xa = ctx->dma_xa;
xa                302 drivers/crypto/qat/qat_common/qat_asym_algs.c 			qat_req->in.dh.in_g2.xa = ctx->dma_xa;
xa                307 drivers/crypto/qat/qat_common/qat_asym_algs.c 			qat_req->in.dh.in.xa = ctx->dma_xa;
xa                476 drivers/crypto/qat/qat_common/qat_asym_algs.c 	if (ctx->xa) {
xa                477 drivers/crypto/qat/qat_common/qat_asym_algs.c 		dma_free_coherent(dev, ctx->p_size, ctx->xa, ctx->dma_xa);
xa                478 drivers/crypto/qat/qat_common/qat_asym_algs.c 		ctx->xa = NULL;
xa                506 drivers/crypto/qat/qat_common/qat_asym_algs.c 	ctx->xa = dma_alloc_coherent(dev, ctx->p_size, &ctx->dma_xa,
xa                508 drivers/crypto/qat/qat_common/qat_asym_algs.c 	if (!ctx->xa) {
xa                512 drivers/crypto/qat/qat_common/qat_asym_algs.c 	memcpy(ctx->xa + (ctx->p_size - params.key_size), params.key,
xa                251 drivers/infiniband/core/cma.c 	struct xarray *xa = cma_pernet_xa(net, ps);
xa                253 drivers/infiniband/core/cma.c 	return xa_insert(xa, snum, bind_list, GFP_KERNEL);
xa                259 drivers/infiniband/core/cma.c 	struct xarray *xa = cma_pernet_xa(net, ps);
xa                261 drivers/infiniband/core/cma.c 	return xa_load(xa, snum);
xa                267 drivers/infiniband/core/cma.c 	struct xarray *xa = cma_pernet_xa(net, ps);
xa                269 drivers/infiniband/core/cma.c 	xa_erase(xa, snum);
xa                230 drivers/infiniband/core/counters.c 	xa_lock(&rt->xa);
xa                231 drivers/infiniband/core/counters.c 	xa_for_each(&rt->xa, id, res) {
xa                248 drivers/infiniband/core/counters.c 	xa_unlock(&rt->xa);
xa                367 drivers/infiniband/core/counters.c 	xa_lock(&rt->xa);
xa                368 drivers/infiniband/core/counters.c 	xa_for_each(&rt->xa, id, res) {
xa                372 drivers/infiniband/core/counters.c 		xa_unlock(&rt->xa);
xa                382 drivers/infiniband/core/counters.c 		xa_lock(&rt->xa);
xa                386 drivers/infiniband/core/counters.c 	xa_unlock(&rt->xa);
xa                157 drivers/infiniband/core/device.c static void *xan_find_marked(struct xarray *xa, unsigned long *indexp,
xa                160 drivers/infiniband/core/device.c 	XA_STATE(xas, xa, *indexp);
xa                179 drivers/infiniband/core/device.c #define xan_for_each_marked(xa, index, entry, filter)                          \
xa                180 drivers/infiniband/core/device.c 	for (index = 0, entry = xan_find_marked(xa, &(index), filter);         \
xa                182 drivers/infiniband/core/device.c 	     (index)++, entry = xan_find_marked(xa, &(index), filter))
xa                699 drivers/infiniband/core/nldev.c 	xa_lock(&rt->xa);
xa                700 drivers/infiniband/core/nldev.c 	xa_for_each(&rt->xa, id, res) {
xa                716 drivers/infiniband/core/nldev.c 	xa_unlock(&rt->xa);
xa                721 drivers/infiniband/core/nldev.c 	xa_unlock(&rt->xa);
xa               1334 drivers/infiniband/core/nldev.c 	xa_lock(&rt->xa);
xa               1340 drivers/infiniband/core/nldev.c 	xa_for_each(&rt->xa, id, res) {
xa               1347 drivers/infiniband/core/nldev.c 		xa_unlock(&rt->xa);
xa               1370 drivers/infiniband/core/nldev.c again:		xa_lock(&rt->xa);
xa               1373 drivers/infiniband/core/nldev.c 	xa_unlock(&rt->xa);
xa                 35 drivers/infiniband/core/restrack.c 		xa_init_flags(&rt[i].xa, XA_FLAGS_ALLOC);
xa                 69 drivers/infiniband/core/restrack.c 		struct xarray *xa = &dev->res[i].xa;
xa                 71 drivers/infiniband/core/restrack.c 		if (!xa_empty(xa)) {
xa                 78 drivers/infiniband/core/restrack.c 			xa_for_each(xa, index, e) {
xa                 98 drivers/infiniband/core/restrack.c 		xa_destroy(xa);
xa                115 drivers/infiniband/core/restrack.c 	XA_STATE(xas, &rt->xa, 0);
xa                118 drivers/infiniband/core/restrack.c 	xa_lock(&rt->xa);
xa                124 drivers/infiniband/core/restrack.c 	xa_unlock(&rt->xa);
xa                225 drivers/infiniband/core/restrack.c 		ret = xa_insert(&rt->xa, qp->qp_num, res, GFP_KERNEL);
xa                232 drivers/infiniband/core/restrack.c 		ret = xa_insert(&rt->xa, counter->id, res, GFP_KERNEL);
xa                235 drivers/infiniband/core/restrack.c 		ret = xa_alloc_cyclic(&rt->xa, &res->id, res, xa_limit_32b,
xa                296 drivers/infiniband/core/restrack.c 	xa_lock(&rt->xa);
xa                297 drivers/infiniband/core/restrack.c 	res = xa_load(&rt->xa, id);
xa                300 drivers/infiniband/core/restrack.c 	xa_unlock(&rt->xa);
xa                335 drivers/infiniband/core/restrack.c 	old = xa_erase(&rt->xa, res->id);
xa                 19 drivers/infiniband/core/restrack.h 	struct xarray xa;
xa                567 drivers/infiniband/hw/hns/hns_roce_device.h 	struct xarray			xa;
xa                145 drivers/infiniband/hw/hns/hns_roce_qp.c 	struct xarray *xa = &hr_dev->qp_table_xa;
xa                155 drivers/infiniband/hw/hns/hns_roce_qp.c 	ret = xa_err(xa_store_irq(xa, hr_qp->qpn & (hr_dev->caps.num_qps - 1),
xa                236 drivers/infiniband/hw/hns/hns_roce_qp.c 	struct xarray *xa = &hr_dev->qp_table_xa;
xa                239 drivers/infiniband/hw/hns/hns_roce_qp.c 	xa_lock_irqsave(xa, flags);
xa                240 drivers/infiniband/hw/hns/hns_roce_qp.c 	__xa_erase(xa, hr_qp->qpn & (hr_dev->caps.num_qps - 1));
xa                241 drivers/infiniband/hw/hns/hns_roce_qp.c 	xa_unlock_irqrestore(xa, flags);
xa                 17 drivers/infiniband/hw/hns/hns_roce_srq.c 	xa_lock(&srq_table->xa);
xa                 18 drivers/infiniband/hw/hns/hns_roce_srq.c 	srq = xa_load(&srq_table->xa, srqn & (hr_dev->caps.num_srqs - 1));
xa                 21 drivers/infiniband/hw/hns/hns_roce_srq.c 	xa_unlock(&srq_table->xa);
xa                123 drivers/infiniband/hw/hns/hns_roce_srq.c 	ret = xa_err(xa_store(&srq_table->xa, srq->srqn, srq, GFP_KERNEL));
xa                147 drivers/infiniband/hw/hns/hns_roce_srq.c 	xa_erase(&srq_table->xa, srq->srqn);
xa                168 drivers/infiniband/hw/hns/hns_roce_srq.c 	xa_erase(&srq_table->xa, srq->srqn);
xa                467 drivers/infiniband/hw/hns/hns_roce_srq.c 	xa_init(&srq_table->xa);
xa                111 drivers/infiniband/sw/siw/siw.h 	struct xarray xa;
xa                 47 drivers/infiniband/sw/siw/siw_verbs.c 	if (xa_alloc_cyclic(&uctx->xa, &key, uobj, limit, &uctx->uobj_nextkey,
xa                 61 drivers/infiniband/sw/siw/siw_verbs.c 	struct siw_uobj *uobj = xa_load(&uctx->xa, off);
xa                108 drivers/infiniband/sw/siw/siw_verbs.c 	xa_init_flags(&ctx->xa, XA_FLAGS_ALLOC);
xa                146 drivers/infiniband/sw/siw/siw_verbs.c 	xa_for_each(&uctx->xa, index, entry) {
xa                147 drivers/infiniband/sw/siw/siw_verbs.c 		kfree(xa_erase(&uctx->xa, index));
xa                150 drivers/infiniband/sw/siw/siw_verbs.c 	xa_destroy(&uctx->xa);
xa                505 drivers/infiniband/sw/siw/siw_verbs.c 			kfree(xa_erase(&uctx->xa, qp->xa_sq_index));
xa                507 drivers/infiniband/sw/siw/siw_verbs.c 			kfree(xa_erase(&uctx->xa, qp->xa_rq_index));
xa                622 drivers/infiniband/sw/siw/siw_verbs.c 		kfree(xa_erase(&uctx->xa, qp->xa_sq_index));
xa                624 drivers/infiniband/sw/siw/siw_verbs.c 		kfree(xa_erase(&uctx->xa, qp->xa_rq_index));
xa               1094 drivers/infiniband/sw/siw/siw_verbs.c 		kfree(xa_erase(&ctx->xa, cq->xa_cq_index));
xa               1188 drivers/infiniband/sw/siw/siw_verbs.c 			kfree(xa_erase(&ctx->xa, cq->xa_cq_index));
xa               1639 drivers/infiniband/sw/siw/siw_verbs.c 			kfree(xa_erase(&ctx->xa, srq->xa_srq_index));
xa               1726 drivers/infiniband/sw/siw/siw_verbs.c 		kfree(xa_erase(&ctx->xa, srq->xa_srq_index));
xa               2963 drivers/net/wireless/ath/ath9k/ar9003_eeprom.c static int interpolate(int x, int xa, int xb, int ya, int yb)
xa               2967 drivers/net/wireless/ath/ath9k/ar9003_eeprom.c 	bf = 2 * (yb - ya) * (x - xa) / (xb - xa);
xa                138 fs/dax.c       	struct xarray *xa;
xa                160 fs/dax.c       	key->xa = xas->xa;
xa                163 fs/dax.c       	hash = hash_long((unsigned long)xas->xa ^ index, DAX_WAIT_TABLE_BITS);
xa                174 fs/dax.c       	if (key->xa != ewait->key.xa ||
xa                414 fs/dax.c       		xas.xa = &mapping->i_pages;
xa                114 include/linux/cdrom.h     int xa;
xa                245 include/linux/idr.h 	struct xarray xa;
xa                251 include/linux/idr.h 	.xa = XARRAY_INIT(name, IDA_INIT_FLAGS)				\
xa                311 include/linux/idr.h 	xa_init_flags(&ida->xa, IDA_INIT_FLAGS);
xa                320 include/linux/idr.h 	return xa_empty(&ida->xa);
xa                355 include/linux/xarray.h void *xa_find(struct xarray *xa, unsigned long *index,
xa                357 include/linux/xarray.h void *xa_find_after(struct xarray *xa, unsigned long *index,
xa                374 include/linux/xarray.h static inline void xa_init_flags(struct xarray *xa, gfp_t flags)
xa                376 include/linux/xarray.h 	spin_lock_init(&xa->xa_lock);
xa                377 include/linux/xarray.h 	xa->xa_flags = flags;
xa                378 include/linux/xarray.h 	xa->xa_head = NULL;
xa                389 include/linux/xarray.h static inline void xa_init(struct xarray *xa)
xa                391 include/linux/xarray.h 	xa_init_flags(xa, 0);
xa                401 include/linux/xarray.h static inline bool xa_empty(const struct xarray *xa)
xa                403 include/linux/xarray.h 	return xa->xa_head == NULL;
xa                414 include/linux/xarray.h static inline bool xa_marked(const struct xarray *xa, xa_mark_t mark)
xa                416 include/linux/xarray.h 	return xa->xa_flags & XA_FLAGS_MARK(mark);
xa                442 include/linux/xarray.h #define xa_for_each_start(xa, index, entry, start)			\
xa                444 include/linux/xarray.h 	     entry = xa_find(xa, &index, ULONG_MAX, XA_PRESENT);	\
xa                446 include/linux/xarray.h 	     entry = xa_find_after(xa, &index, ULONG_MAX, XA_PRESENT))
xa                469 include/linux/xarray.h #define xa_for_each(xa, index, entry) \
xa                470 include/linux/xarray.h 	xa_for_each_start(xa, index, entry, 0)
xa                496 include/linux/xarray.h #define xa_for_each_marked(xa, index, entry, filter) \
xa                497 include/linux/xarray.h 	for (index = 0, entry = xa_find(xa, &index, ULONG_MAX, filter); \
xa                498 include/linux/xarray.h 	     entry; entry = xa_find_after(xa, &index, ULONG_MAX, filter))
xa                500 include/linux/xarray.h #define xa_trylock(xa)		spin_trylock(&(xa)->xa_lock)
xa                501 include/linux/xarray.h #define xa_lock(xa)		spin_lock(&(xa)->xa_lock)
xa                502 include/linux/xarray.h #define xa_unlock(xa)		spin_unlock(&(xa)->xa_lock)
xa                503 include/linux/xarray.h #define xa_lock_bh(xa)		spin_lock_bh(&(xa)->xa_lock)
xa                504 include/linux/xarray.h #define xa_unlock_bh(xa)	spin_unlock_bh(&(xa)->xa_lock)
xa                505 include/linux/xarray.h #define xa_lock_irq(xa)		spin_lock_irq(&(xa)->xa_lock)
xa                506 include/linux/xarray.h #define xa_unlock_irq(xa)	spin_unlock_irq(&(xa)->xa_lock)
xa                507 include/linux/xarray.h #define xa_lock_irqsave(xa, flags) \
xa                508 include/linux/xarray.h 				spin_lock_irqsave(&(xa)->xa_lock, flags)
xa                509 include/linux/xarray.h #define xa_unlock_irqrestore(xa, flags) \
xa                510 include/linux/xarray.h 				spin_unlock_irqrestore(&(xa)->xa_lock, flags)
xa                546 include/linux/xarray.h static inline void *xa_store_bh(struct xarray *xa, unsigned long index,
xa                551 include/linux/xarray.h 	xa_lock_bh(xa);
xa                552 include/linux/xarray.h 	curr = __xa_store(xa, index, entry, gfp);
xa                553 include/linux/xarray.h 	xa_unlock_bh(xa);
xa                572 include/linux/xarray.h static inline void *xa_store_irq(struct xarray *xa, unsigned long index,
xa                577 include/linux/xarray.h 	xa_lock_irq(xa);
xa                578 include/linux/xarray.h 	curr = __xa_store(xa, index, entry, gfp);
xa                579 include/linux/xarray.h 	xa_unlock_irq(xa);
xa                597 include/linux/xarray.h static inline void *xa_erase_bh(struct xarray *xa, unsigned long index)
xa                601 include/linux/xarray.h 	xa_lock_bh(xa);
xa                602 include/linux/xarray.h 	entry = __xa_erase(xa, index);
xa                603 include/linux/xarray.h 	xa_unlock_bh(xa);
xa                621 include/linux/xarray.h static inline void *xa_erase_irq(struct xarray *xa, unsigned long index)
xa                625 include/linux/xarray.h 	xa_lock_irq(xa);
xa                626 include/linux/xarray.h 	entry = __xa_erase(xa, index);
xa                627 include/linux/xarray.h 	xa_unlock_irq(xa);
xa                647 include/linux/xarray.h static inline void *xa_cmpxchg(struct xarray *xa, unsigned long index,
xa                652 include/linux/xarray.h 	xa_lock(xa);
xa                653 include/linux/xarray.h 	curr = __xa_cmpxchg(xa, index, old, entry, gfp);
xa                654 include/linux/xarray.h 	xa_unlock(xa);
xa                674 include/linux/xarray.h static inline void *xa_cmpxchg_bh(struct xarray *xa, unsigned long index,
xa                679 include/linux/xarray.h 	xa_lock_bh(xa);
xa                680 include/linux/xarray.h 	curr = __xa_cmpxchg(xa, index, old, entry, gfp);
xa                681 include/linux/xarray.h 	xa_unlock_bh(xa);
xa                701 include/linux/xarray.h static inline void *xa_cmpxchg_irq(struct xarray *xa, unsigned long index,
xa                706 include/linux/xarray.h 	xa_lock_irq(xa);
xa                707 include/linux/xarray.h 	curr = __xa_cmpxchg(xa, index, old, entry, gfp);
xa                708 include/linux/xarray.h 	xa_unlock_irq(xa);
xa                730 include/linux/xarray.h static inline int __must_check xa_insert(struct xarray *xa,
xa                735 include/linux/xarray.h 	xa_lock(xa);
xa                736 include/linux/xarray.h 	err = __xa_insert(xa, index, entry, gfp);
xa                737 include/linux/xarray.h 	xa_unlock(xa);
xa                759 include/linux/xarray.h static inline int __must_check xa_insert_bh(struct xarray *xa,
xa                764 include/linux/xarray.h 	xa_lock_bh(xa);
xa                765 include/linux/xarray.h 	err = __xa_insert(xa, index, entry, gfp);
xa                766 include/linux/xarray.h 	xa_unlock_bh(xa);
xa                788 include/linux/xarray.h static inline int __must_check xa_insert_irq(struct xarray *xa,
xa                793 include/linux/xarray.h 	xa_lock_irq(xa);
xa                794 include/linux/xarray.h 	err = __xa_insert(xa, index, entry, gfp);
xa                795 include/linux/xarray.h 	xa_unlock_irq(xa);
xa                817 include/linux/xarray.h static inline __must_check int xa_alloc(struct xarray *xa, u32 *id,
xa                822 include/linux/xarray.h 	xa_lock(xa);
xa                823 include/linux/xarray.h 	err = __xa_alloc(xa, id, entry, limit, gfp);
xa                824 include/linux/xarray.h 	xa_unlock(xa);
xa                846 include/linux/xarray.h static inline int __must_check xa_alloc_bh(struct xarray *xa, u32 *id,
xa                851 include/linux/xarray.h 	xa_lock_bh(xa);
xa                852 include/linux/xarray.h 	err = __xa_alloc(xa, id, entry, limit, gfp);
xa                853 include/linux/xarray.h 	xa_unlock_bh(xa);
xa                875 include/linux/xarray.h static inline int __must_check xa_alloc_irq(struct xarray *xa, u32 *id,
xa                880 include/linux/xarray.h 	xa_lock_irq(xa);
xa                881 include/linux/xarray.h 	err = __xa_alloc(xa, id, entry, limit, gfp);
xa                882 include/linux/xarray.h 	xa_unlock_irq(xa);
xa                908 include/linux/xarray.h static inline int xa_alloc_cyclic(struct xarray *xa, u32 *id, void *entry,
xa                913 include/linux/xarray.h 	xa_lock(xa);
xa                914 include/linux/xarray.h 	err = __xa_alloc_cyclic(xa, id, entry, limit, next, gfp);
xa                915 include/linux/xarray.h 	xa_unlock(xa);
xa                941 include/linux/xarray.h static inline int xa_alloc_cyclic_bh(struct xarray *xa, u32 *id, void *entry,
xa                946 include/linux/xarray.h 	xa_lock_bh(xa);
xa                947 include/linux/xarray.h 	err = __xa_alloc_cyclic(xa, id, entry, limit, next, gfp);
xa                948 include/linux/xarray.h 	xa_unlock_bh(xa);
xa                974 include/linux/xarray.h static inline int xa_alloc_cyclic_irq(struct xarray *xa, u32 *id, void *entry,
xa                979 include/linux/xarray.h 	xa_lock_irq(xa);
xa                980 include/linux/xarray.h 	err = __xa_alloc_cyclic(xa, id, entry, limit, next, gfp);
xa                981 include/linux/xarray.h 	xa_unlock_irq(xa);
xa               1005 include/linux/xarray.h int xa_reserve(struct xarray *xa, unsigned long index, gfp_t gfp)
xa               1007 include/linux/xarray.h 	return xa_err(xa_cmpxchg(xa, index, NULL, XA_ZERO_ENTRY, gfp));
xa               1023 include/linux/xarray.h int xa_reserve_bh(struct xarray *xa, unsigned long index, gfp_t gfp)
xa               1025 include/linux/xarray.h 	return xa_err(xa_cmpxchg_bh(xa, index, NULL, XA_ZERO_ENTRY, gfp));
xa               1041 include/linux/xarray.h int xa_reserve_irq(struct xarray *xa, unsigned long index, gfp_t gfp)
xa               1043 include/linux/xarray.h 	return xa_err(xa_cmpxchg_irq(xa, index, NULL, XA_ZERO_ENTRY, gfp));
xa               1055 include/linux/xarray.h static inline void xa_release(struct xarray *xa, unsigned long index)
xa               1057 include/linux/xarray.h 	xa_cmpxchg(xa, index, XA_ZERO_ENTRY, NULL, 0);
xa               1109 include/linux/xarray.h #define XA_BUG_ON(xa, x) do {					\
xa               1111 include/linux/xarray.h 			xa_dump(xa);				\
xa               1122 include/linux/xarray.h #define XA_BUG_ON(xa, x)	do { } while (0)
xa               1127 include/linux/xarray.h static inline void *xa_head(const struct xarray *xa)
xa               1129 include/linux/xarray.h 	return rcu_dereference_check(xa->xa_head,
xa               1130 include/linux/xarray.h 						lockdep_is_held(&xa->xa_lock));
xa               1134 include/linux/xarray.h static inline void *xa_head_locked(const struct xarray *xa)
xa               1136 include/linux/xarray.h 	return rcu_dereference_protected(xa->xa_head,
xa               1137 include/linux/xarray.h 						lockdep_is_held(&xa->xa_lock));
xa               1141 include/linux/xarray.h static inline void *xa_entry(const struct xarray *xa,
xa               1146 include/linux/xarray.h 						lockdep_is_held(&xa->xa_lock));
xa               1150 include/linux/xarray.h static inline void *xa_entry_locked(const struct xarray *xa,
xa               1155 include/linux/xarray.h 						lockdep_is_held(&xa->xa_lock));
xa               1159 include/linux/xarray.h static inline struct xa_node *xa_parent(const struct xarray *xa,
xa               1163 include/linux/xarray.h 						lockdep_is_held(&xa->xa_lock));
xa               1167 include/linux/xarray.h static inline struct xa_node *xa_parent_locked(const struct xarray *xa,
xa               1171 include/linux/xarray.h 						lockdep_is_held(&xa->xa_lock));
xa               1272 include/linux/xarray.h 	struct xarray *xa;
xa               1292 include/linux/xarray.h 	.xa = array,					\
xa               1331 include/linux/xarray.h #define xas_marked(xas, mark)	xa_marked((xas)->xa, (mark))
xa               1332 include/linux/xarray.h #define xas_trylock(xas)	xa_trylock((xas)->xa)
xa               1333 include/linux/xarray.h #define xas_lock(xas)		xa_lock((xas)->xa)
xa               1334 include/linux/xarray.h #define xas_unlock(xas)		xa_unlock((xas)->xa)
xa               1335 include/linux/xarray.h #define xas_lock_bh(xas)	xa_lock_bh((xas)->xa)
xa               1336 include/linux/xarray.h #define xas_unlock_bh(xas)	xa_unlock_bh((xas)->xa)
xa               1337 include/linux/xarray.h #define xas_lock_irq(xas)	xa_lock_irq((xas)->xa)
xa               1338 include/linux/xarray.h #define xas_unlock_irq(xas)	xa_unlock_irq((xas)->xa)
xa               1340 include/linux/xarray.h 				xa_lock_irqsave((xas)->xa, flags)
xa               1342 include/linux/xarray.h 				xa_unlock_irqrestore((xas)->xa, flags)
xa               1492 include/linux/xarray.h 		return xa_entry(xas->xa, node, xas->xa_offset);
xa               1493 include/linux/xarray.h 	return xa_head(xas->xa);
xa               1569 include/linux/xarray.h 		entry = xa_entry(xas->xa, node, xas->xa_offset + 1);
xa               1628 include/linux/xarray.h 	entry = xa_entry(xas->xa, node, offset);
xa               1722 include/linux/xarray.h 	return xa_entry(xas->xa, node, xas->xa_offset);
xa               1751 include/linux/xarray.h 	return xa_entry(xas->xa, node, xas->xa_offset);
xa                320 include/trace/events/xdp.h 	TP_PROTO(const struct xdp_mem_allocator *xa),
xa                322 include/trace/events/xdp.h 	TP_ARGS(xa),
xa                325 include/trace/events/xdp.h 		__field(const struct xdp_mem_allocator *,	xa)
xa                332 include/trace/events/xdp.h 		__entry->xa		= xa;
xa                333 include/trace/events/xdp.h 		__entry->mem_id		= xa->mem.id;
xa                334 include/trace/events/xdp.h 		__entry->mem_type	= xa->mem.type;
xa                335 include/trace/events/xdp.h 		__entry->allocator	= xa->allocator;
xa                347 include/trace/events/xdp.h 	TP_PROTO(const struct xdp_mem_allocator *xa,
xa                350 include/trace/events/xdp.h 	TP_ARGS(xa, rxq),
xa                353 include/trace/events/xdp.h 		__field(const struct xdp_mem_allocator *,	xa)
xa                362 include/trace/events/xdp.h 		__entry->xa		= xa;
xa                363 include/trace/events/xdp.h 		__entry->mem_id		= xa->mem.id;
xa                364 include/trace/events/xdp.h 		__entry->mem_type	= xa->mem.type;
xa                365 include/trace/events/xdp.h 		__entry->allocator	= xa->allocator;
xa                382 lib/idr.c      	XA_STATE(xas, &ida->xa, min / IDA_BITMAP_BITS);
xa                486 lib/idr.c      	XA_STATE(xas, &ida->xa, id / IDA_BITMAP_BITS);
xa                538 lib/idr.c      	XA_STATE(xas, &ida->xa, 0);
xa                589 lib/idr.c      	struct xarray *xa = &ida->xa;
xa                590 lib/idr.c      	pr_debug("ida: %p node %p free %d\n", ida, xa->xa_head,
xa                591 lib/idr.c      				xa->xa_flags >> ROOT_TAG_SHIFT);
xa                592 lib/idr.c      	ida_dump_entry(xa->xa_head, 0);
xa                 20 lib/test_xarray.c void xa_dump(const struct xarray *xa) { }
xa                 23 lib/test_xarray.c #define XA_BUG_ON(xa, x) do {					\
xa                 27 lib/test_xarray.c 		xa_dump(xa);					\
xa                 40 lib/test_xarray.c static void *xa_store_index(struct xarray *xa, unsigned long index, gfp_t gfp)
xa                 42 lib/test_xarray.c 	return xa_store(xa, index, xa_mk_index(index), gfp);
xa                 45 lib/test_xarray.c static void xa_insert_index(struct xarray *xa, unsigned long index)
xa                 47 lib/test_xarray.c 	XA_BUG_ON(xa, xa_insert(xa, index, xa_mk_index(index),
xa                 51 lib/test_xarray.c static void xa_alloc_index(struct xarray *xa, unsigned long index, gfp_t gfp)
xa                 55 lib/test_xarray.c 	XA_BUG_ON(xa, xa_alloc(xa, &id, xa_mk_index(index), xa_limit_32b,
xa                 57 lib/test_xarray.c 	XA_BUG_ON(xa, id != index);
xa                 60 lib/test_xarray.c static void xa_erase_index(struct xarray *xa, unsigned long index)
xa                 62 lib/test_xarray.c 	XA_BUG_ON(xa, xa_erase(xa, index) != xa_mk_index(index));
xa                 63 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, index) != NULL);
xa                 71 lib/test_xarray.c static void *xa_store_order(struct xarray *xa, unsigned long index,
xa                 74 lib/test_xarray.c 	XA_STATE_ORDER(xas, xa, index, order);
xa                 86 lib/test_xarray.c static noinline void check_xa_err(struct xarray *xa)
xa                 88 lib/test_xarray.c 	XA_BUG_ON(xa, xa_err(xa_store_index(xa, 0, GFP_NOWAIT)) != 0);
xa                 89 lib/test_xarray.c 	XA_BUG_ON(xa, xa_err(xa_erase(xa, 0)) != 0);
xa                 92 lib/test_xarray.c 	XA_BUG_ON(xa, xa_err(xa_store_index(xa, 1, GFP_NOWAIT)) != -ENOMEM);
xa                 93 lib/test_xarray.c 	XA_BUG_ON(xa, xa_err(xa_store_index(xa, 1, GFP_NOWAIT)) != -ENOMEM);
xa                 95 lib/test_xarray.c 	XA_BUG_ON(xa, xa_err(xa_store_index(xa, 1, GFP_KERNEL)) != 0);
xa                 96 lib/test_xarray.c 	XA_BUG_ON(xa, xa_err(xa_store(xa, 1, xa_mk_value(0), GFP_KERNEL)) != 0);
xa                 97 lib/test_xarray.c 	XA_BUG_ON(xa, xa_err(xa_erase(xa, 1)) != 0);
xa                102 lib/test_xarray.c static noinline void check_xas_retry(struct xarray *xa)
xa                104 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xa                107 lib/test_xarray.c 	xa_store_index(xa, 0, GFP_KERNEL);
xa                108 lib/test_xarray.c 	xa_store_index(xa, 1, GFP_KERNEL);
xa                111 lib/test_xarray.c 	XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != xa_mk_value(0));
xa                112 lib/test_xarray.c 	xa_erase_index(xa, 1);
xa                113 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_is_retry(xas_reload(&xas)));
xa                114 lib/test_xarray.c 	XA_BUG_ON(xa, xas_retry(&xas, NULL));
xa                115 lib/test_xarray.c 	XA_BUG_ON(xa, xas_retry(&xas, xa_mk_value(0)));
xa                117 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_node != XAS_RESTART);
xa                118 lib/test_xarray.c 	XA_BUG_ON(xa, xas_next_entry(&xas, ULONG_MAX) != xa_mk_value(0));
xa                119 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_node != NULL);
xa                122 lib/test_xarray.c 	XA_BUG_ON(xa, xa_store_index(xa, 1, GFP_KERNEL) != NULL);
xa                125 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_is_internal(xas_reload(&xas)));
xa                127 lib/test_xarray.c 	XA_BUG_ON(xa, xas_next_entry(&xas, ULONG_MAX) != xa_mk_value(0));
xa                143 lib/test_xarray.c 	xa_erase_index(xa, 0);
xa                144 lib/test_xarray.c 	xa_erase_index(xa, 1);
xa                147 lib/test_xarray.c static noinline void check_xa_load(struct xarray *xa)
xa                153 lib/test_xarray.c 			void *entry = xa_load(xa, j);
xa                155 lib/test_xarray.c 				XA_BUG_ON(xa, xa_to_value(entry) != j);
xa                157 lib/test_xarray.c 				XA_BUG_ON(xa, entry);
xa                159 lib/test_xarray.c 		XA_BUG_ON(xa, xa_store_index(xa, i, GFP_KERNEL) != NULL);
xa                164 lib/test_xarray.c 			void *entry = xa_load(xa, j);
xa                166 lib/test_xarray.c 				XA_BUG_ON(xa, xa_to_value(entry) != j);
xa                168 lib/test_xarray.c 				XA_BUG_ON(xa, entry);
xa                170 lib/test_xarray.c 		xa_erase_index(xa, i);
xa                172 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                175 lib/test_xarray.c static noinline void check_xa_mark_1(struct xarray *xa, unsigned long index)
xa                181 lib/test_xarray.c 	XA_BUG_ON(xa, xa_get_mark(xa, index, XA_MARK_0));
xa                182 lib/test_xarray.c 	xa_set_mark(xa, index, XA_MARK_0);
xa                183 lib/test_xarray.c 	XA_BUG_ON(xa, xa_get_mark(xa, index, XA_MARK_0));
xa                186 lib/test_xarray.c 	XA_BUG_ON(xa, xa_store_index(xa, index, GFP_KERNEL) != NULL);
xa                187 lib/test_xarray.c 	XA_BUG_ON(xa, xa_get_mark(xa, index, XA_MARK_0));
xa                188 lib/test_xarray.c 	xa_set_mark(xa, index, XA_MARK_0);
xa                189 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_get_mark(xa, index, XA_MARK_0));
xa                192 lib/test_xarray.c 	XA_BUG_ON(xa, xa_get_mark(xa, index + 1, XA_MARK_0));
xa                193 lib/test_xarray.c 	XA_BUG_ON(xa, xa_get_mark(xa, index, XA_MARK_1));
xa                196 lib/test_xarray.c 	xa_erase_index(xa, index);
xa                197 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                198 lib/test_xarray.c 	XA_BUG_ON(xa, xa_get_mark(xa, index, XA_MARK_0));
xa                199 lib/test_xarray.c 	xa_set_mark(xa, index, XA_MARK_0);
xa                200 lib/test_xarray.c 	XA_BUG_ON(xa, xa_get_mark(xa, index, XA_MARK_0));
xa                212 lib/test_xarray.c 		XA_BUG_ON(xa, xa_store_index(xa, index + 1, GFP_KERNEL));
xa                213 lib/test_xarray.c 		xa_set_mark(xa, index + 1, XA_MARK_0);
xa                214 lib/test_xarray.c 		XA_BUG_ON(xa, xa_store_index(xa, index + 2, GFP_KERNEL));
xa                215 lib/test_xarray.c 		xa_set_mark(xa, index + 2, XA_MARK_2);
xa                216 lib/test_xarray.c 		XA_BUG_ON(xa, xa_store_index(xa, next, GFP_KERNEL));
xa                217 lib/test_xarray.c 		xa_store_order(xa, index, order, xa_mk_index(index),
xa                220 lib/test_xarray.c 			XA_STATE(xas, xa, i);
xa                224 lib/test_xarray.c 			XA_BUG_ON(xa, !xa_get_mark(xa, i, XA_MARK_0));
xa                225 lib/test_xarray.c 			XA_BUG_ON(xa, xa_get_mark(xa, i, XA_MARK_1));
xa                226 lib/test_xarray.c 			XA_BUG_ON(xa, !xa_get_mark(xa, i, XA_MARK_2));
xa                233 lib/test_xarray.c 			XA_BUG_ON(xa, seen != 2);
xa                242 lib/test_xarray.c 			XA_BUG_ON(xa, seen != 1);
xa                244 lib/test_xarray.c 		XA_BUG_ON(xa, xa_get_mark(xa, next, XA_MARK_0));
xa                245 lib/test_xarray.c 		XA_BUG_ON(xa, xa_get_mark(xa, next, XA_MARK_1));
xa                246 lib/test_xarray.c 		XA_BUG_ON(xa, xa_get_mark(xa, next, XA_MARK_2));
xa                247 lib/test_xarray.c 		xa_erase_index(xa, index);
xa                248 lib/test_xarray.c 		xa_erase_index(xa, next);
xa                249 lib/test_xarray.c 		XA_BUG_ON(xa, !xa_empty(xa));
xa                251 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                254 lib/test_xarray.c static noinline void check_xa_mark_2(struct xarray *xa)
xa                256 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xa                261 lib/test_xarray.c 	xa_store_index(xa, 0, GFP_KERNEL);
xa                262 lib/test_xarray.c 	xa_set_mark(xa, 0, XA_MARK_0);
xa                267 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_get_mark(xa, 0, XA_MARK_0) == 0);
xa                270 lib/test_xarray.c 		xa_store_index(xa, index, GFP_KERNEL);
xa                271 lib/test_xarray.c 		xa_set_mark(xa, index, XA_MARK_0);
xa                279 lib/test_xarray.c 	XA_BUG_ON(xa, count != 1000);
xa                284 lib/test_xarray.c 		XA_BUG_ON(xa, !xa_get_mark(xa, xas.xa_index, XA_MARK_0));
xa                285 lib/test_xarray.c 		XA_BUG_ON(xa, !xas_get_mark(&xas, XA_MARK_0));
xa                289 lib/test_xarray.c 	xa_destroy(xa);
xa                292 lib/test_xarray.c static noinline void check_xa_mark(struct xarray *xa)
xa                297 lib/test_xarray.c 		check_xa_mark_1(xa, index);
xa                299 lib/test_xarray.c 	check_xa_mark_2(xa);
xa                302 lib/test_xarray.c static noinline void check_xa_shrink(struct xarray *xa)
xa                304 lib/test_xarray.c 	XA_STATE(xas, xa, 1);
xa                309 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                310 lib/test_xarray.c 	XA_BUG_ON(xa, xa_store_index(xa, 0, GFP_KERNEL) != NULL);
xa                311 lib/test_xarray.c 	XA_BUG_ON(xa, xa_store_index(xa, 1, GFP_KERNEL) != NULL);
xa                318 lib/test_xarray.c 	XA_BUG_ON(xa, xas_load(&xas) != xa_mk_value(1));
xa                320 lib/test_xarray.c 	XA_BUG_ON(xa, xa_entry_locked(xa, node, 0) != xa_mk_value(0));
xa                321 lib/test_xarray.c 	XA_BUG_ON(xa, xas_store(&xas, NULL) != xa_mk_value(1));
xa                322 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, 1) != NULL);
xa                323 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_node != XAS_BOUNDS);
xa                324 lib/test_xarray.c 	XA_BUG_ON(xa, xa_entry_locked(xa, node, 0) != XA_RETRY_ENTRY);
xa                325 lib/test_xarray.c 	XA_BUG_ON(xa, xas_load(&xas) != NULL);
xa                327 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, 0) != xa_mk_value(0));
xa                328 lib/test_xarray.c 	xa_erase_index(xa, 0);
xa                329 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                333 lib/test_xarray.c 		xa_store_order(xa, 0, order, xa_mk_value(0), GFP_KERNEL);
xa                334 lib/test_xarray.c 		XA_BUG_ON(xa, xa_load(xa, max) != xa_mk_value(0));
xa                335 lib/test_xarray.c 		XA_BUG_ON(xa, xa_load(xa, max + 1) != NULL);
xa                337 lib/test_xarray.c 		node = xa_head(xa);
xa                339 lib/test_xarray.c 		XA_BUG_ON(xa, xa_store_index(xa, ULONG_MAX, GFP_KERNEL) !=
xa                342 lib/test_xarray.c 		XA_BUG_ON(xa, xa_head(xa) == node);
xa                344 lib/test_xarray.c 		XA_BUG_ON(xa, xa_load(xa, max + 1) != NULL);
xa                345 lib/test_xarray.c 		xa_erase_index(xa, ULONG_MAX);
xa                346 lib/test_xarray.c 		XA_BUG_ON(xa, xa->xa_head != node);
xa                347 lib/test_xarray.c 		xa_erase_index(xa, 0);
xa                351 lib/test_xarray.c static noinline void check_insert(struct xarray *xa)
xa                356 lib/test_xarray.c 		xa_insert_index(xa, i);
xa                357 lib/test_xarray.c 		XA_BUG_ON(xa, xa_load(xa, i - 1) != NULL);
xa                358 lib/test_xarray.c 		XA_BUG_ON(xa, xa_load(xa, i + 1) != NULL);
xa                359 lib/test_xarray.c 		xa_erase_index(xa, i);
xa                363 lib/test_xarray.c 		xa_insert_index(xa, 1UL << i);
xa                364 lib/test_xarray.c 		XA_BUG_ON(xa, xa_load(xa, (1UL << i) - 1) != NULL);
xa                365 lib/test_xarray.c 		XA_BUG_ON(xa, xa_load(xa, (1UL << i) + 1) != NULL);
xa                366 lib/test_xarray.c 		xa_erase_index(xa, 1UL << i);
xa                368 lib/test_xarray.c 		xa_insert_index(xa, (1UL << i) - 1);
xa                369 lib/test_xarray.c 		XA_BUG_ON(xa, xa_load(xa, (1UL << i) - 2) != NULL);
xa                370 lib/test_xarray.c 		XA_BUG_ON(xa, xa_load(xa, 1UL << i) != NULL);
xa                371 lib/test_xarray.c 		xa_erase_index(xa, (1UL << i) - 1);
xa                374 lib/test_xarray.c 	xa_insert_index(xa, ~0UL);
xa                375 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, 0UL) != NULL);
xa                376 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, ~1UL) != NULL);
xa                377 lib/test_xarray.c 	xa_erase_index(xa, ~0UL);
xa                379 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                382 lib/test_xarray.c static noinline void check_cmpxchg(struct xarray *xa)
xa                388 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                389 lib/test_xarray.c 	XA_BUG_ON(xa, xa_store_index(xa, 12345678, GFP_KERNEL) != NULL);
xa                390 lib/test_xarray.c 	XA_BUG_ON(xa, xa_insert(xa, 12345678, xa, GFP_KERNEL) != -EBUSY);
xa                391 lib/test_xarray.c 	XA_BUG_ON(xa, xa_cmpxchg(xa, 12345678, SIX, FIVE, GFP_KERNEL) != LOTS);
xa                392 lib/test_xarray.c 	XA_BUG_ON(xa, xa_cmpxchg(xa, 12345678, LOTS, FIVE, GFP_KERNEL) != LOTS);
xa                393 lib/test_xarray.c 	XA_BUG_ON(xa, xa_cmpxchg(xa, 12345678, FIVE, LOTS, GFP_KERNEL) != FIVE);
xa                394 lib/test_xarray.c 	XA_BUG_ON(xa, xa_cmpxchg(xa, 5, FIVE, NULL, GFP_KERNEL) != NULL);
xa                395 lib/test_xarray.c 	XA_BUG_ON(xa, xa_cmpxchg(xa, 5, NULL, FIVE, GFP_KERNEL) != NULL);
xa                396 lib/test_xarray.c 	xa_erase_index(xa, 12345678);
xa                397 lib/test_xarray.c 	xa_erase_index(xa, 5);
xa                398 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                401 lib/test_xarray.c static noinline void check_reserve(struct xarray *xa)
xa                408 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                409 lib/test_xarray.c 	XA_BUG_ON(xa, xa_reserve(xa, 12345678, GFP_KERNEL) != 0);
xa                410 lib/test_xarray.c 	XA_BUG_ON(xa, xa_empty(xa));
xa                411 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, 12345678));
xa                412 lib/test_xarray.c 	xa_release(xa, 12345678);
xa                413 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                416 lib/test_xarray.c 	XA_BUG_ON(xa, xa_reserve(xa, 12345678, GFP_KERNEL) != 0);
xa                417 lib/test_xarray.c 	XA_BUG_ON(xa, xa_store_index(xa, 12345678, GFP_NOWAIT) != NULL);
xa                418 lib/test_xarray.c 	xa_release(xa, 12345678);
xa                419 lib/test_xarray.c 	xa_erase_index(xa, 12345678);
xa                420 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                423 lib/test_xarray.c 	XA_BUG_ON(xa, xa_reserve(xa, 12345678, GFP_KERNEL) != 0);
xa                424 lib/test_xarray.c 	XA_BUG_ON(xa, xa_cmpxchg(xa, 12345678, XA_ZERO_ENTRY,
xa                426 lib/test_xarray.c 	xa_release(xa, 12345678);
xa                427 lib/test_xarray.c 	xa_erase_index(xa, 12345678);
xa                428 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                431 lib/test_xarray.c 	XA_BUG_ON(xa, xa_reserve(xa, 12345678, GFP_KERNEL) != 0);
xa                432 lib/test_xarray.c 	XA_BUG_ON(xa, xa_insert(xa, 12345678, xa_mk_value(12345678), 0) !=
xa                434 lib/test_xarray.c 	XA_BUG_ON(xa, xa_empty(xa));
xa                435 lib/test_xarray.c 	XA_BUG_ON(xa, xa_erase(xa, 12345678) != NULL);
xa                436 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                439 lib/test_xarray.c 	xa_store_index(xa, 5, GFP_KERNEL);
xa                440 lib/test_xarray.c 	XA_BUG_ON(xa, xa_reserve(xa, 6, GFP_KERNEL) != 0);
xa                441 lib/test_xarray.c 	xa_store_index(xa, 7, GFP_KERNEL);
xa                444 lib/test_xarray.c 	xa_for_each(xa, index, entry) {
xa                445 lib/test_xarray.c 		XA_BUG_ON(xa, index != 5 && index != 7);
xa                448 lib/test_xarray.c 	XA_BUG_ON(xa, count != 2);
xa                451 lib/test_xarray.c 	if (xa->xa_flags & XA_FLAGS_ALLOC) {
xa                454 lib/test_xarray.c 		XA_BUG_ON(xa, xa_alloc(xa, &id, xa_mk_value(8),
xa                456 lib/test_xarray.c 		XA_BUG_ON(xa, id != 8);
xa                458 lib/test_xarray.c 		xa_release(xa, 6);
xa                459 lib/test_xarray.c 		XA_BUG_ON(xa, xa_alloc(xa, &id, xa_mk_value(6),
xa                461 lib/test_xarray.c 		XA_BUG_ON(xa, id != 6);
xa                464 lib/test_xarray.c 	xa_destroy(xa);
xa                467 lib/test_xarray.c static noinline void check_xas_erase(struct xarray *xa)
xa                469 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xa                496 lib/test_xarray.c 			XA_BUG_ON(xa, entry != xa_mk_index(j));
xa                501 lib/test_xarray.c 		XA_BUG_ON(xa, !xa_empty(xa));
xa                506 lib/test_xarray.c static noinline void check_multi_store_1(struct xarray *xa, unsigned long index,
xa                509 lib/test_xarray.c 	XA_STATE(xas, xa, index);
xa                513 lib/test_xarray.c 	xa_store_order(xa, index, order, xa_mk_index(index), GFP_KERNEL);
xa                514 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, min) != xa_mk_index(index));
xa                515 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, max - 1) != xa_mk_index(index));
xa                516 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, max) != NULL);
xa                517 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, min - 1) != NULL);
xa                520 lib/test_xarray.c 	XA_BUG_ON(xa, xas_store(&xas, xa_mk_index(min)) != xa_mk_index(index));
xa                522 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, min) != xa_mk_index(min));
xa                523 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, max - 1) != xa_mk_index(min));
xa                524 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, max) != NULL);
xa                525 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, min - 1) != NULL);
xa                527 lib/test_xarray.c 	xa_erase_index(xa, min);
xa                528 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                531 lib/test_xarray.c static noinline void check_multi_store_2(struct xarray *xa, unsigned long index,
xa                534 lib/test_xarray.c 	XA_STATE(xas, xa, index);
xa                535 lib/test_xarray.c 	xa_store_order(xa, index, order, xa_mk_value(0), GFP_KERNEL);
xa                538 lib/test_xarray.c 	XA_BUG_ON(xa, xas_store(&xas, xa_mk_value(1)) != xa_mk_value(0));
xa                539 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_index != index);
xa                540 lib/test_xarray.c 	XA_BUG_ON(xa, xas_store(&xas, NULL) != xa_mk_value(1));
xa                542 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                545 lib/test_xarray.c static noinline void check_multi_store_3(struct xarray *xa, unsigned long index,
xa                548 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xa                552 lib/test_xarray.c 	xa_store_order(xa, index, order, xa_mk_index(index), GFP_KERNEL);
xa                556 lib/test_xarray.c 		XA_BUG_ON(xa, entry != xa_mk_index(index));
xa                559 lib/test_xarray.c 	XA_BUG_ON(xa, n != 1);
xa                562 lib/test_xarray.c 		XA_BUG_ON(xa, entry != xa_mk_index(index));
xa                565 lib/test_xarray.c 	XA_BUG_ON(xa, n != 2);
xa                568 lib/test_xarray.c 	xa_destroy(xa);
xa                572 lib/test_xarray.c static noinline void check_multi_store(struct xarray *xa)
xa                579 lib/test_xarray.c 	xa_store_order(xa, 0, 1, xa_mk_value(0), GFP_KERNEL);
xa                580 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, 0) != xa_mk_value(0));
xa                581 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, 1) != xa_mk_value(0));
xa                582 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, 2) != NULL);
xa                584 lib/test_xarray.c 	XA_BUG_ON(xa, xa_to_node(xa_head(xa))->count != 2);
xa                585 lib/test_xarray.c 	XA_BUG_ON(xa, xa_to_node(xa_head(xa))->nr_values != 2);
xa                589 lib/test_xarray.c 	xa_store(xa, 3, xa, GFP_KERNEL);
xa                590 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, 0) != xa_mk_value(0));
xa                591 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, 1) != xa_mk_value(0));
xa                592 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, 2) != NULL);
xa                594 lib/test_xarray.c 	XA_BUG_ON(xa, xa_to_node(xa_head(xa))->count != 3);
xa                595 lib/test_xarray.c 	XA_BUG_ON(xa, xa_to_node(xa_head(xa))->nr_values != 2);
xa                599 lib/test_xarray.c 	xa_store_order(xa, 0, 2, xa_mk_value(1), GFP_KERNEL);
xa                600 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, 0) != xa_mk_value(1));
xa                601 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, 1) != xa_mk_value(1));
xa                602 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, 2) != xa_mk_value(1));
xa                603 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, 3) != xa_mk_value(1));
xa                604 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, 4) != NULL);
xa                606 lib/test_xarray.c 	XA_BUG_ON(xa, xa_to_node(xa_head(xa))->count != 4);
xa                607 lib/test_xarray.c 	XA_BUG_ON(xa, xa_to_node(xa_head(xa))->nr_values != 4);
xa                611 lib/test_xarray.c 	xa_store_order(xa, 0, BITS_PER_LONG - 1, NULL, GFP_KERNEL);
xa                612 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                615 lib/test_xarray.c 	xa_store_index(xa, 1, GFP_KERNEL);
xa                616 lib/test_xarray.c 	xa_store_index(xa, 2, GFP_KERNEL);
xa                617 lib/test_xarray.c 	xa_store_order(xa, 0, 2, NULL, GFP_KERNEL);
xa                618 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                622 lib/test_xarray.c 			xa_store_order(xa, 0, i, xa_mk_index(i), GFP_KERNEL);
xa                623 lib/test_xarray.c 			xa_store_order(xa, 0, j, xa_mk_index(j), GFP_KERNEL);
xa                626 lib/test_xarray.c 				void *entry = xa_load(xa, (1UL << k) - 1);
xa                628 lib/test_xarray.c 					XA_BUG_ON(xa, entry != NULL);
xa                630 lib/test_xarray.c 					XA_BUG_ON(xa, entry != xa_mk_index(j));
xa                633 lib/test_xarray.c 			xa_erase(xa, 0);
xa                634 lib/test_xarray.c 			XA_BUG_ON(xa, !xa_empty(xa));
xa                639 lib/test_xarray.c 		check_multi_store_1(xa, 200, i);
xa                640 lib/test_xarray.c 		check_multi_store_1(xa, 0, i);
xa                641 lib/test_xarray.c 		check_multi_store_1(xa, (1UL << i) + 1, i);
xa                643 lib/test_xarray.c 	check_multi_store_2(xa, 4095, 9);
xa                646 lib/test_xarray.c 		check_multi_store_3(xa, 0, i);
xa                647 lib/test_xarray.c 		check_multi_store_3(xa, 1UL << i, i);
xa                652 lib/test_xarray.c static noinline void check_xa_alloc_1(struct xarray *xa, unsigned int base)
xa                657 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                659 lib/test_xarray.c 	xa_alloc_index(xa, base, GFP_KERNEL);
xa                662 lib/test_xarray.c 	xa_erase_index(xa, base);
xa                663 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                666 lib/test_xarray.c 	xa_alloc_index(xa, base, GFP_KERNEL);
xa                670 lib/test_xarray.c 		xa_alloc_index(xa, i, GFP_KERNEL);
xa                672 lib/test_xarray.c 		xa_erase_index(xa, i);
xa                673 lib/test_xarray.c 	xa_alloc_index(xa, base, GFP_KERNEL);
xa                676 lib/test_xarray.c 	xa_destroy(xa);
xa                679 lib/test_xarray.c 	xa_alloc_index(xa, base, GFP_KERNEL);
xa                682 lib/test_xarray.c 	xa_alloc_index(xa, base + 1, GFP_KERNEL);
xa                683 lib/test_xarray.c 	xa_erase_index(xa, base + 1);
xa                686 lib/test_xarray.c 	xa_store_index(xa, base + 1, GFP_KERNEL);
xa                687 lib/test_xarray.c 	xa_alloc_index(xa, base + 2, GFP_KERNEL);
xa                690 lib/test_xarray.c 	xa_erase_index(xa, base);
xa                691 lib/test_xarray.c 	xa_alloc_index(xa, base, GFP_KERNEL);
xa                693 lib/test_xarray.c 	xa_erase_index(xa, base + 1);
xa                694 lib/test_xarray.c 	xa_erase_index(xa, base + 2);
xa                697 lib/test_xarray.c 		xa_alloc_index(xa, base + i, GFP_KERNEL);
xa                700 lib/test_xarray.c 	xa_destroy(xa);
xa                703 lib/test_xarray.c 	XA_BUG_ON(xa, xa_alloc(xa, &id, xa_mk_index(UINT_MAX - 1),
xa                706 lib/test_xarray.c 	XA_BUG_ON(xa, id != 0xfffffffeU);
xa                707 lib/test_xarray.c 	XA_BUG_ON(xa, xa_alloc(xa, &id, xa_mk_index(UINT_MAX),
xa                710 lib/test_xarray.c 	XA_BUG_ON(xa, id != 0xffffffffU);
xa                712 lib/test_xarray.c 	XA_BUG_ON(xa, xa_alloc(xa, &id, xa_mk_index(0),
xa                715 lib/test_xarray.c 	XA_BUG_ON(xa, id != 3);
xa                716 lib/test_xarray.c 	xa_destroy(xa);
xa                718 lib/test_xarray.c 	XA_BUG_ON(xa, xa_alloc(xa, &id, xa_mk_index(10), XA_LIMIT(10, 5),
xa                720 lib/test_xarray.c 	XA_BUG_ON(xa, xa_store_index(xa, 3, GFP_KERNEL) != 0);
xa                721 lib/test_xarray.c 	XA_BUG_ON(xa, xa_alloc(xa, &id, xa_mk_index(10), XA_LIMIT(10, 5),
xa                723 lib/test_xarray.c 	xa_erase_index(xa, 3);
xa                724 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                727 lib/test_xarray.c static noinline void check_xa_alloc_2(struct xarray *xa, unsigned int base)
xa                734 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                735 lib/test_xarray.c 	XA_BUG_ON(xa, xa_alloc(xa, &id, NULL, xa_limit_32b, GFP_KERNEL) != 0);
xa                736 lib/test_xarray.c 	XA_BUG_ON(xa, id != base);
xa                737 lib/test_xarray.c 	XA_BUG_ON(xa, xa_empty(xa));
xa                738 lib/test_xarray.c 	XA_BUG_ON(xa, xa_erase(xa, id) != NULL);
xa                739 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                742 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                743 lib/test_xarray.c 	XA_BUG_ON(xa, xa_alloc(xa, &id, NULL, xa_limit_32b, GFP_KERNEL) != 0);
xa                744 lib/test_xarray.c 	XA_BUG_ON(xa, id != base);
xa                745 lib/test_xarray.c 	XA_BUG_ON(xa, xa_empty(xa));
xa                746 lib/test_xarray.c 	xa_destroy(xa);
xa                747 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                750 lib/test_xarray.c 		XA_BUG_ON(xa, xa_alloc(xa, &id, NULL, xa_limit_32b,
xa                752 lib/test_xarray.c 		XA_BUG_ON(xa, id != i);
xa                755 lib/test_xarray.c 	XA_BUG_ON(xa, xa_store(xa, 3, xa_mk_index(3), GFP_KERNEL) != NULL);
xa                756 lib/test_xarray.c 	XA_BUG_ON(xa, xa_store(xa, 4, xa_mk_index(4), GFP_KERNEL) != NULL);
xa                757 lib/test_xarray.c 	XA_BUG_ON(xa, xa_store(xa, 4, NULL, GFP_KERNEL) != xa_mk_index(4));
xa                758 lib/test_xarray.c 	XA_BUG_ON(xa, xa_erase(xa, 5) != NULL);
xa                759 lib/test_xarray.c 	XA_BUG_ON(xa, xa_alloc(xa, &id, NULL, xa_limit_32b, GFP_KERNEL) != 0);
xa                760 lib/test_xarray.c 	XA_BUG_ON(xa, id != 5);
xa                762 lib/test_xarray.c 	xa_for_each(xa, index, entry) {
xa                763 lib/test_xarray.c 		xa_erase_index(xa, index);
xa                767 lib/test_xarray.c 		XA_BUG_ON(xa, xa_erase(xa, i) != NULL);
xa                768 lib/test_xarray.c 		XA_BUG_ON(xa, xa_empty(xa));
xa                770 lib/test_xarray.c 	XA_BUG_ON(xa, xa_erase(xa, 8) != NULL);
xa                771 lib/test_xarray.c 	XA_BUG_ON(xa, xa_empty(xa));
xa                772 lib/test_xarray.c 	XA_BUG_ON(xa, xa_erase(xa, base + 9) != NULL);
xa                773 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                775 lib/test_xarray.c 	xa_destroy(xa);
xa                778 lib/test_xarray.c static noinline void check_xa_alloc_3(struct xarray *xa, unsigned int base)
xa                786 lib/test_xarray.c 	XA_BUG_ON(xa, xa_alloc_cyclic(xa, &id, xa_mk_index(1), limit,
xa                788 lib/test_xarray.c 	XA_BUG_ON(xa, id != 1);
xa                791 lib/test_xarray.c 	XA_BUG_ON(xa, xa_alloc_cyclic(xa, &id, xa_mk_index(0x3ffd), limit,
xa                793 lib/test_xarray.c 	XA_BUG_ON(xa, id != 0x3ffd);
xa                794 lib/test_xarray.c 	xa_erase_index(xa, 0x3ffd);
xa                795 lib/test_xarray.c 	xa_erase_index(xa, 1);
xa                796 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                803 lib/test_xarray.c 		XA_BUG_ON(xa, xa_alloc_cyclic(xa, &id, entry, limit,
xa                805 lib/test_xarray.c 		XA_BUG_ON(xa, xa_mk_index(id) != entry);
xa                810 lib/test_xarray.c 		xa_erase_index(xa, base);
xa                811 lib/test_xarray.c 	xa_erase_index(xa, base + 1);
xa                813 lib/test_xarray.c 	XA_BUG_ON(xa, xa_alloc_cyclic(xa, &id, xa_mk_index(UINT_MAX),
xa                815 lib/test_xarray.c 	XA_BUG_ON(xa, id != UINT_MAX);
xa                816 lib/test_xarray.c 	XA_BUG_ON(xa, xa_alloc_cyclic(xa, &id, xa_mk_index(base),
xa                818 lib/test_xarray.c 	XA_BUG_ON(xa, id != base);
xa                819 lib/test_xarray.c 	XA_BUG_ON(xa, xa_alloc_cyclic(xa, &id, xa_mk_index(base + 1),
xa                821 lib/test_xarray.c 	XA_BUG_ON(xa, id != base + 1);
xa                823 lib/test_xarray.c 	xa_for_each(xa, index, entry)
xa                824 lib/test_xarray.c 		xa_erase_index(xa, index);
xa                826 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                842 lib/test_xarray.c static noinline void __check_store_iter(struct xarray *xa, unsigned long start,
xa                845 lib/test_xarray.c 	XA_STATE_ORDER(xas, xa, start, order);
xa                852 lib/test_xarray.c 		XA_BUG_ON(xa, !xa_is_value(entry));
xa                853 lib/test_xarray.c 		XA_BUG_ON(xa, entry < xa_mk_index(start));
xa                854 lib/test_xarray.c 		XA_BUG_ON(xa, entry > xa_mk_index(start + (1UL << order) - 1));
xa                863 lib/test_xarray.c 	XA_BUG_ON(xa, xas_error(&xas));
xa                864 lib/test_xarray.c 	XA_BUG_ON(xa, count != present);
xa                865 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, start) != xa_mk_index(start));
xa                866 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, start + (1UL << order) - 1) !=
xa                868 lib/test_xarray.c 	xa_erase_index(xa, start);
xa                871 lib/test_xarray.c static noinline void check_store_iter(struct xarray *xa)
xa                879 lib/test_xarray.c 		__check_store_iter(xa, 0, i, 0);
xa                880 lib/test_xarray.c 		XA_BUG_ON(xa, !xa_empty(xa));
xa                881 lib/test_xarray.c 		__check_store_iter(xa, min, i, 0);
xa                882 lib/test_xarray.c 		XA_BUG_ON(xa, !xa_empty(xa));
xa                884 lib/test_xarray.c 		xa_store_index(xa, min, GFP_KERNEL);
xa                885 lib/test_xarray.c 		__check_store_iter(xa, min, i, 1);
xa                886 lib/test_xarray.c 		XA_BUG_ON(xa, !xa_empty(xa));
xa                887 lib/test_xarray.c 		xa_store_index(xa, max, GFP_KERNEL);
xa                888 lib/test_xarray.c 		__check_store_iter(xa, min, i, 1);
xa                889 lib/test_xarray.c 		XA_BUG_ON(xa, !xa_empty(xa));
xa                892 lib/test_xarray.c 			xa_store_index(xa, j, GFP_KERNEL);
xa                893 lib/test_xarray.c 		__check_store_iter(xa, 0, i, min);
xa                894 lib/test_xarray.c 		XA_BUG_ON(xa, !xa_empty(xa));
xa                896 lib/test_xarray.c 			xa_store_index(xa, min + j, GFP_KERNEL);
xa                897 lib/test_xarray.c 		__check_store_iter(xa, min, i, min);
xa                898 lib/test_xarray.c 		XA_BUG_ON(xa, !xa_empty(xa));
xa                901 lib/test_xarray.c 	xa_store_index(xa, 63, GFP_KERNEL);
xa                902 lib/test_xarray.c 	xa_store_index(xa, 65, GFP_KERNEL);
xa                903 lib/test_xarray.c 	__check_store_iter(xa, 64, 2, 1);
xa                904 lib/test_xarray.c 	xa_erase_index(xa, 63);
xa                906 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                909 lib/test_xarray.c static noinline void check_multi_find_1(struct xarray *xa, unsigned order)
xa                916 lib/test_xarray.c 	xa_store_order(xa, multi, order, xa_mk_value(multi), GFP_KERNEL);
xa                917 lib/test_xarray.c 	XA_BUG_ON(xa, xa_store_index(xa, next, GFP_KERNEL) != NULL);
xa                918 lib/test_xarray.c 	XA_BUG_ON(xa, xa_store_index(xa, next + 1, GFP_KERNEL) != NULL);
xa                921 lib/test_xarray.c 	XA_BUG_ON(xa, xa_find(xa, &index, ULONG_MAX, XA_PRESENT) !=
xa                923 lib/test_xarray.c 	XA_BUG_ON(xa, index != multi);
xa                925 lib/test_xarray.c 	XA_BUG_ON(xa, xa_find(xa, &index, ULONG_MAX, XA_PRESENT) !=
xa                927 lib/test_xarray.c 	XA_BUG_ON(xa, (index < multi) || (index >= next));
xa                928 lib/test_xarray.c 	XA_BUG_ON(xa, xa_find_after(xa, &index, ULONG_MAX, XA_PRESENT) !=
xa                930 lib/test_xarray.c 	XA_BUG_ON(xa, index != next);
xa                931 lib/test_xarray.c 	XA_BUG_ON(xa, xa_find_after(xa, &index, next, XA_PRESENT) != NULL);
xa                932 lib/test_xarray.c 	XA_BUG_ON(xa, index != next);
xa                934 lib/test_xarray.c 	xa_erase_index(xa, multi);
xa                935 lib/test_xarray.c 	xa_erase_index(xa, next);
xa                936 lib/test_xarray.c 	xa_erase_index(xa, next + 1);
xa                937 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                941 lib/test_xarray.c static noinline void check_multi_find_2(struct xarray *xa)
xa                950 lib/test_xarray.c 			XA_STATE(xas, xa, j + index);
xa                951 lib/test_xarray.c 			xa_store_index(xa, index - 1, GFP_KERNEL);
xa                952 lib/test_xarray.c 			xa_store_order(xa, index, i, xa_mk_index(index),
xa                956 lib/test_xarray.c 				xa_erase_index(xa, index);
xa                959 lib/test_xarray.c 			xa_erase_index(xa, index - 1);
xa                960 lib/test_xarray.c 			XA_BUG_ON(xa, !xa_empty(xa));
xa                965 lib/test_xarray.c static noinline void check_multi_find_3(struct xarray *xa)
xa                972 lib/test_xarray.c 		XA_BUG_ON(xa, !xa_empty(xa));
xa                973 lib/test_xarray.c 		xa_store_order(xa, 0, order - 4, xa_mk_index(0), GFP_KERNEL);
xa                974 lib/test_xarray.c 		XA_BUG_ON(xa, xa_find_after(xa, &index, ULONG_MAX, XA_PRESENT));
xa                975 lib/test_xarray.c 		xa_erase_index(xa, 0);
xa                979 lib/test_xarray.c static noinline void check_find_1(struct xarray *xa)
xa                983 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                990 lib/test_xarray.c 		XA_BUG_ON(xa, xa_store_index(xa, i, GFP_KERNEL) != NULL);
xa                991 lib/test_xarray.c 		xa_set_mark(xa, i, XA_MARK_0);
xa                993 lib/test_xarray.c 			XA_BUG_ON(xa, xa_store_index(xa, j, GFP_KERNEL) !=
xa                995 lib/test_xarray.c 			xa_set_mark(xa, j, XA_MARK_0);
xa                998 lib/test_xarray.c 				void *entry = xa_find(xa, &index, ULONG_MAX,
xa               1001 lib/test_xarray.c 					XA_BUG_ON(xa, index != j);
xa               1003 lib/test_xarray.c 					XA_BUG_ON(xa, index != i);
xa               1005 lib/test_xarray.c 					XA_BUG_ON(xa, entry != NULL);
xa               1008 lib/test_xarray.c 				entry = xa_find(xa, &index, ULONG_MAX,
xa               1011 lib/test_xarray.c 					XA_BUG_ON(xa, index != j);
xa               1013 lib/test_xarray.c 					XA_BUG_ON(xa, index != i);
xa               1015 lib/test_xarray.c 					XA_BUG_ON(xa, entry != NULL);
xa               1017 lib/test_xarray.c 			xa_erase_index(xa, j);
xa               1018 lib/test_xarray.c 			XA_BUG_ON(xa, xa_get_mark(xa, j, XA_MARK_0));
xa               1019 lib/test_xarray.c 			XA_BUG_ON(xa, !xa_get_mark(xa, i, XA_MARK_0));
xa               1021 lib/test_xarray.c 		xa_erase_index(xa, i);
xa               1022 lib/test_xarray.c 		XA_BUG_ON(xa, xa_get_mark(xa, i, XA_MARK_0));
xa               1024 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa               1027 lib/test_xarray.c static noinline void check_find_2(struct xarray *xa)
xa               1032 lib/test_xarray.c 	xa_for_each(xa, index, entry) {
xa               1033 lib/test_xarray.c 		XA_BUG_ON(xa, true);
xa               1037 lib/test_xarray.c 		xa_store_index(xa, index, GFP_KERNEL);
xa               1039 lib/test_xarray.c 		xa_for_each(xa, index, entry) {
xa               1040 lib/test_xarray.c 			XA_BUG_ON(xa, xa_mk_index(index) != entry);
xa               1041 lib/test_xarray.c 			XA_BUG_ON(xa, index != j++);
xa               1045 lib/test_xarray.c 	xa_destroy(xa);
xa               1048 lib/test_xarray.c static noinline void check_find_3(struct xarray *xa)
xa               1050 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xa               1062 lib/test_xarray.c 					XA_BUG_ON(xa,
xa               1067 lib/test_xarray.c 		xa_store_index(xa, i, GFP_KERNEL);
xa               1068 lib/test_xarray.c 		xa_set_mark(xa, i, XA_MARK_0);
xa               1070 lib/test_xarray.c 	xa_destroy(xa);
xa               1073 lib/test_xarray.c static noinline void check_find_4(struct xarray *xa)
xa               1078 lib/test_xarray.c 	xa_store_index(xa, ULONG_MAX, GFP_KERNEL);
xa               1080 lib/test_xarray.c 	entry = xa_find_after(xa, &index, ULONG_MAX, XA_PRESENT);
xa               1081 lib/test_xarray.c 	XA_BUG_ON(xa, entry != xa_mk_index(ULONG_MAX));
xa               1083 lib/test_xarray.c 	entry = xa_find_after(xa, &index, ULONG_MAX, XA_PRESENT);
xa               1084 lib/test_xarray.c 	XA_BUG_ON(xa, entry);
xa               1086 lib/test_xarray.c 	xa_erase_index(xa, ULONG_MAX);
xa               1089 lib/test_xarray.c static noinline void check_find(struct xarray *xa)
xa               1093 lib/test_xarray.c 	check_find_1(xa);
xa               1094 lib/test_xarray.c 	check_find_2(xa);
xa               1095 lib/test_xarray.c 	check_find_3(xa);
xa               1096 lib/test_xarray.c 	check_find_4(xa);
xa               1099 lib/test_xarray.c 		check_multi_find_1(xa, i);
xa               1100 lib/test_xarray.c 	check_multi_find_2(xa);
xa               1101 lib/test_xarray.c 	check_multi_find_3(xa);
xa               1105 lib/test_xarray.c static noinline unsigned long xa_find_entry(struct xarray *xa, void *item)
xa               1107 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xa               1127 lib/test_xarray.c static noinline void check_find_entry(struct xarray *xa)
xa               1138 lib/test_xarray.c 				xa_store_order(xa, index, order,
xa               1140 lib/test_xarray.c 				XA_BUG_ON(xa, xa_load(xa, index) !=
xa               1142 lib/test_xarray.c 				XA_BUG_ON(xa, xa_find_entry(xa,
xa               1145 lib/test_xarray.c 			XA_BUG_ON(xa, xa_find_entry(xa, xa) != -1);
xa               1146 lib/test_xarray.c 			xa_destroy(xa);
xa               1151 lib/test_xarray.c 	XA_BUG_ON(xa, xa_find_entry(xa, xa) != -1);
xa               1152 lib/test_xarray.c 	xa_store_index(xa, ULONG_MAX, GFP_KERNEL);
xa               1153 lib/test_xarray.c 	XA_BUG_ON(xa, xa_find_entry(xa, xa) != -1);
xa               1154 lib/test_xarray.c 	XA_BUG_ON(xa, xa_find_entry(xa, xa_mk_index(ULONG_MAX)) != -1);
xa               1155 lib/test_xarray.c 	xa_erase_index(xa, ULONG_MAX);
xa               1156 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa               1159 lib/test_xarray.c static noinline void check_pause(struct xarray *xa)
xa               1161 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xa               1168 lib/test_xarray.c 		XA_BUG_ON(xa, xa_store_order(xa, index, order,
xa               1175 lib/test_xarray.c 		XA_BUG_ON(xa, entry != xa_mk_index(1UL << count));
xa               1179 lib/test_xarray.c 	XA_BUG_ON(xa, count != order_limit);
xa               1185 lib/test_xarray.c 		XA_BUG_ON(xa, entry != xa_mk_index(1UL << count));
xa               1190 lib/test_xarray.c 	XA_BUG_ON(xa, count != order_limit);
xa               1192 lib/test_xarray.c 	xa_destroy(xa);
xa               1195 lib/test_xarray.c static noinline void check_move_tiny(struct xarray *xa)
xa               1197 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xa               1199 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa               1201 lib/test_xarray.c 	XA_BUG_ON(xa, xas_next(&xas) != NULL);
xa               1202 lib/test_xarray.c 	XA_BUG_ON(xa, xas_next(&xas) != NULL);
xa               1204 lib/test_xarray.c 	xa_store_index(xa, 0, GFP_KERNEL);
xa               1207 lib/test_xarray.c 	XA_BUG_ON(xa, xas_next(&xas) != xa_mk_index(0));
xa               1208 lib/test_xarray.c 	XA_BUG_ON(xa, xas_next(&xas) != NULL);
xa               1210 lib/test_xarray.c 	XA_BUG_ON(xa, xas_prev(&xas) != xa_mk_index(0));
xa               1211 lib/test_xarray.c 	XA_BUG_ON(xa, xas_prev(&xas) != NULL);
xa               1213 lib/test_xarray.c 	xa_erase_index(xa, 0);
xa               1214 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa               1217 lib/test_xarray.c static noinline void check_move_max(struct xarray *xa)
xa               1219 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xa               1221 lib/test_xarray.c 	xa_store_index(xa, ULONG_MAX, GFP_KERNEL);
xa               1223 lib/test_xarray.c 	XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != xa_mk_index(ULONG_MAX));
xa               1224 lib/test_xarray.c 	XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != NULL);
xa               1229 lib/test_xarray.c 	XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != xa_mk_index(ULONG_MAX));
xa               1231 lib/test_xarray.c 	XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != NULL);
xa               1234 lib/test_xarray.c 	xa_erase_index(xa, ULONG_MAX);
xa               1235 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa               1238 lib/test_xarray.c static noinline void check_move_small(struct xarray *xa, unsigned long idx)
xa               1240 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xa               1243 lib/test_xarray.c 	xa_store_index(xa, 0, GFP_KERNEL);
xa               1244 lib/test_xarray.c 	xa_store_index(xa, idx, GFP_KERNEL);
xa               1250 lib/test_xarray.c 			XA_BUG_ON(xa, xas.xa_node == XAS_RESTART);
xa               1251 lib/test_xarray.c 		XA_BUG_ON(xa, xas.xa_index != i);
xa               1253 lib/test_xarray.c 			XA_BUG_ON(xa, entry != xa_mk_index(i));
xa               1255 lib/test_xarray.c 			XA_BUG_ON(xa, entry != NULL);
xa               1258 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_index != i);
xa               1264 lib/test_xarray.c 			XA_BUG_ON(xa, xas.xa_node == XAS_RESTART);
xa               1265 lib/test_xarray.c 		XA_BUG_ON(xa, xas.xa_index != i);
xa               1267 lib/test_xarray.c 			XA_BUG_ON(xa, entry != xa_mk_index(i));
xa               1269 lib/test_xarray.c 			XA_BUG_ON(xa, entry != NULL);
xa               1273 lib/test_xarray.c 	XA_BUG_ON(xa, xas_next(&xas) != NULL);
xa               1274 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_index != ULONG_MAX);
xa               1275 lib/test_xarray.c 	XA_BUG_ON(xa, xas_next(&xas) != xa_mk_value(0));
xa               1276 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_index != 0);
xa               1277 lib/test_xarray.c 	XA_BUG_ON(xa, xas_prev(&xas) != NULL);
xa               1278 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_index != ULONG_MAX);
xa               1281 lib/test_xarray.c 	xa_erase_index(xa, 0);
xa               1282 lib/test_xarray.c 	xa_erase_index(xa, idx);
xa               1283 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa               1286 lib/test_xarray.c static noinline void check_move(struct xarray *xa)
xa               1288 lib/test_xarray.c 	XA_STATE(xas, xa, (1 << 16) - 1);
xa               1292 lib/test_xarray.c 		XA_BUG_ON(xa, xa_store_index(xa, i, GFP_KERNEL) != NULL);
xa               1298 lib/test_xarray.c 		XA_BUG_ON(xa, entry != xa_mk_index(i));
xa               1299 lib/test_xarray.c 		XA_BUG_ON(xa, i != xas.xa_index);
xa               1302 lib/test_xarray.c 	XA_BUG_ON(xa, xas_prev(&xas) != NULL);
xa               1303 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_index != ULONG_MAX);
xa               1307 lib/test_xarray.c 		XA_BUG_ON(xa, entry != xa_mk_index(i));
xa               1308 lib/test_xarray.c 		XA_BUG_ON(xa, i != xas.xa_index);
xa               1314 lib/test_xarray.c 		xa_erase_index(xa, i);
xa               1323 lib/test_xarray.c 			XA_BUG_ON(xa, entry != xa_mk_index(i));
xa               1325 lib/test_xarray.c 			XA_BUG_ON(xa, entry != NULL);
xa               1326 lib/test_xarray.c 		XA_BUG_ON(xa, i != xas.xa_index);
xa               1329 lib/test_xarray.c 	XA_BUG_ON(xa, xas_prev(&xas) != NULL);
xa               1330 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_index != ULONG_MAX);
xa               1335 lib/test_xarray.c 			XA_BUG_ON(xa, entry != xa_mk_index(i));
xa               1337 lib/test_xarray.c 			XA_BUG_ON(xa, entry != NULL);
xa               1338 lib/test_xarray.c 		XA_BUG_ON(xa, i != xas.xa_index);
xa               1343 lib/test_xarray.c 	xa_destroy(xa);
xa               1345 lib/test_xarray.c 	check_move_tiny(xa);
xa               1346 lib/test_xarray.c 	check_move_max(xa);
xa               1349 lib/test_xarray.c 		check_move_small(xa, 1UL << i);
xa               1352 lib/test_xarray.c 		check_move_small(xa, (1UL << i) - 1);
xa               1355 lib/test_xarray.c static noinline void xa_store_many_order(struct xarray *xa,
xa               1358 lib/test_xarray.c 	XA_STATE_ORDER(xas, xa, index, order);
xa               1363 lib/test_xarray.c 		XA_BUG_ON(xa, xas_find_conflict(&xas));
xa               1368 lib/test_xarray.c 			XA_BUG_ON(xa, xas_store(&xas, xa_mk_index(index + i)));
xa               1375 lib/test_xarray.c 	XA_BUG_ON(xa, xas_error(&xas));
xa               1378 lib/test_xarray.c static noinline void check_create_range_1(struct xarray *xa,
xa               1383 lib/test_xarray.c 	xa_store_many_order(xa, index, order);
xa               1385 lib/test_xarray.c 		xa_erase_index(xa, i);
xa               1386 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa               1389 lib/test_xarray.c static noinline void check_create_range_2(struct xarray *xa, unsigned order)
xa               1395 lib/test_xarray.c 		xa_store_many_order(xa, i, order);
xa               1397 lib/test_xarray.c 		xa_erase_index(xa, i);
xa               1398 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa               1409 lib/test_xarray.c static noinline void check_create_range_4(struct xarray *xa,
xa               1412 lib/test_xarray.c 	XA_STATE_ORDER(xas, xa, index, order);
xa               1416 lib/test_xarray.c 	xa_store_index(xa, index, GFP_KERNEL);
xa               1425 lib/test_xarray.c 				XA_BUG_ON(xa, old != xa_mk_index(base + i));
xa               1427 lib/test_xarray.c 				XA_BUG_ON(xa, old != NULL);
xa               1434 lib/test_xarray.c 	XA_BUG_ON(xa, xas_error(&xas));
xa               1437 lib/test_xarray.c 		xa_erase_index(xa, i);
xa               1438 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa               1441 lib/test_xarray.c static noinline void check_create_range(struct xarray *xa)
xa               1447 lib/test_xarray.c 		check_create_range_1(xa, 0, order);
xa               1448 lib/test_xarray.c 		check_create_range_1(xa, 1U << order, order);
xa               1449 lib/test_xarray.c 		check_create_range_1(xa, 2U << order, order);
xa               1450 lib/test_xarray.c 		check_create_range_1(xa, 3U << order, order);
xa               1451 lib/test_xarray.c 		check_create_range_1(xa, 1U << 24, order);
xa               1453 lib/test_xarray.c 			check_create_range_2(xa, order);
xa               1455 lib/test_xarray.c 		check_create_range_4(xa, 0, order);
xa               1456 lib/test_xarray.c 		check_create_range_4(xa, 1U << order, order);
xa               1457 lib/test_xarray.c 		check_create_range_4(xa, 2U << order, order);
xa               1458 lib/test_xarray.c 		check_create_range_4(xa, 3U << order, order);
xa               1459 lib/test_xarray.c 		check_create_range_4(xa, 1U << 24, order);
xa               1461 lib/test_xarray.c 		check_create_range_4(xa, 1, order);
xa               1462 lib/test_xarray.c 		check_create_range_4(xa, (1U << order) + 1, order);
xa               1463 lib/test_xarray.c 		check_create_range_4(xa, (2U << order) + 1, order);
xa               1464 lib/test_xarray.c 		check_create_range_4(xa, (2U << order) - 1, order);
xa               1465 lib/test_xarray.c 		check_create_range_4(xa, (3U << order) + 1, order);
xa               1466 lib/test_xarray.c 		check_create_range_4(xa, (3U << order) - 1, order);
xa               1467 lib/test_xarray.c 		check_create_range_4(xa, (1U << 24) + 1, order);
xa               1473 lib/test_xarray.c static noinline void __check_store_range(struct xarray *xa, unsigned long first,
xa               1477 lib/test_xarray.c 	xa_store_range(xa, first, last, xa_mk_index(first), GFP_KERNEL);
xa               1479 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, first) != xa_mk_index(first));
xa               1480 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, last) != xa_mk_index(first));
xa               1481 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, first - 1) != NULL);
xa               1482 lib/test_xarray.c 	XA_BUG_ON(xa, xa_load(xa, last + 1) != NULL);
xa               1484 lib/test_xarray.c 	xa_store_range(xa, first, last, NULL, GFP_KERNEL);
xa               1487 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa               1490 lib/test_xarray.c static noinline void check_store_range(struct xarray *xa)
xa               1496 lib/test_xarray.c 			__check_store_range(xa, i, j);
xa               1497 lib/test_xarray.c 			__check_store_range(xa, 128 + i, 128 + j);
xa               1498 lib/test_xarray.c 			__check_store_range(xa, 4095 + i, 4095 + j);
xa               1499 lib/test_xarray.c 			__check_store_range(xa, 4096 + i, 4096 + j);
xa               1500 lib/test_xarray.c 			__check_store_range(xa, 123456 + i, 123456 + j);
xa               1501 lib/test_xarray.c 			__check_store_range(xa, (1 << 24) + i, (1 << 24) + j);
xa               1506 lib/test_xarray.c static void check_align_1(struct xarray *xa, char *name)
xa               1514 lib/test_xarray.c 		XA_BUG_ON(xa, xa_alloc(xa, &id, name + i, xa_limit_32b,
xa               1516 lib/test_xarray.c 		XA_BUG_ON(xa, id != i);
xa               1518 lib/test_xarray.c 	xa_for_each(xa, index, entry)
xa               1519 lib/test_xarray.c 		XA_BUG_ON(xa, xa_is_err(entry));
xa               1520 lib/test_xarray.c 	xa_destroy(xa);
xa               1527 lib/test_xarray.c static void check_align_2(struct xarray *xa, char *name)
xa               1531 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa               1534 lib/test_xarray.c 		XA_BUG_ON(xa, xa_store(xa, 0, name + i, GFP_KERNEL) != NULL);
xa               1535 lib/test_xarray.c 		xa_erase(xa, 0);
xa               1539 lib/test_xarray.c 		XA_BUG_ON(xa, xa_reserve(xa, 0, GFP_KERNEL) != 0);
xa               1540 lib/test_xarray.c 		XA_BUG_ON(xa, xa_store(xa, 0, name + i, 0) != NULL);
xa               1541 lib/test_xarray.c 		xa_erase(xa, 0);
xa               1544 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa               1547 lib/test_xarray.c static noinline void check_align(struct xarray *xa)
xa               1551 lib/test_xarray.c 	check_align_1(xa, name);
xa               1552 lib/test_xarray.c 	check_align_1(xa, name + 1);
xa               1553 lib/test_xarray.c 	check_align_1(xa, name + 2);
xa               1554 lib/test_xarray.c 	check_align_1(xa, name + 3);
xa               1555 lib/test_xarray.c 	check_align_2(xa, name);
xa               1571 lib/test_xarray.c static noinline void shadow_remove(struct xarray *xa)
xa               1575 lib/test_xarray.c 	xa_lock(xa);
xa               1579 lib/test_xarray.c 		XA_BUG_ON(xa, node->array != xa);
xa               1587 lib/test_xarray.c 	xa_unlock(xa);
xa               1590 lib/test_xarray.c static noinline void check_workingset(struct xarray *xa, unsigned long index)
xa               1592 lib/test_xarray.c 	XA_STATE(xas, xa, index);
xa               1603 lib/test_xarray.c 	XA_BUG_ON(xa, list_empty(&shadow_nodes));
xa               1608 lib/test_xarray.c 	XA_BUG_ON(xa, !list_empty(&shadow_nodes));
xa               1612 lib/test_xarray.c 	XA_BUG_ON(xa, list_empty(&shadow_nodes));
xa               1614 lib/test_xarray.c 	shadow_remove(xa);
xa               1615 lib/test_xarray.c 	XA_BUG_ON(xa, !list_empty(&shadow_nodes));
xa               1616 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa               1623 lib/test_xarray.c static noinline void check_account(struct xarray *xa)
xa               1629 lib/test_xarray.c 		XA_STATE(xas, xa, 1 << order);
xa               1631 lib/test_xarray.c 		xa_store_order(xa, 0, order, xa, GFP_KERNEL);
xa               1634 lib/test_xarray.c 		XA_BUG_ON(xa, xas.xa_node->count == 0);
xa               1635 lib/test_xarray.c 		XA_BUG_ON(xa, xas.xa_node->count > (1 << order));
xa               1636 lib/test_xarray.c 		XA_BUG_ON(xa, xas.xa_node->nr_values != 0);
xa               1639 lib/test_xarray.c 		xa_store_order(xa, 1 << order, order, xa_mk_index(1UL << order),
xa               1641 lib/test_xarray.c 		XA_BUG_ON(xa, xas.xa_node->count != xas.xa_node->nr_values * 2);
xa               1643 lib/test_xarray.c 		xa_erase(xa, 1 << order);
xa               1644 lib/test_xarray.c 		XA_BUG_ON(xa, xas.xa_node->nr_values != 0);
xa               1646 lib/test_xarray.c 		xa_erase(xa, 0);
xa               1647 lib/test_xarray.c 		XA_BUG_ON(xa, !xa_empty(xa));
xa               1652 lib/test_xarray.c static noinline void check_destroy(struct xarray *xa)
xa               1656 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa               1659 lib/test_xarray.c 	xa_destroy(xa);
xa               1660 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa               1664 lib/test_xarray.c 		xa_store_index(xa, index, GFP_KERNEL);
xa               1665 lib/test_xarray.c 		XA_BUG_ON(xa, xa_empty(xa));
xa               1666 lib/test_xarray.c 		xa_destroy(xa);
xa               1667 lib/test_xarray.c 		XA_BUG_ON(xa, !xa_empty(xa));
xa               1671 lib/test_xarray.c 	xa_store(xa, ULONG_MAX, xa, GFP_KERNEL);
xa               1672 lib/test_xarray.c 	XA_BUG_ON(xa, xa_empty(xa));
xa               1673 lib/test_xarray.c 	xa_destroy(xa);
xa               1674 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa               1678 lib/test_xarray.c 	xa_store_order(xa, 1 << 11, 11, xa, GFP_KERNEL);
xa               1679 lib/test_xarray.c 	XA_BUG_ON(xa, xa_empty(xa));
xa               1680 lib/test_xarray.c 	xa_destroy(xa);
xa               1681 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_empty(xa));
xa                 31 lib/xarray.c   static inline unsigned int xa_lock_type(const struct xarray *xa)
xa                 33 lib/xarray.c   	return (__force unsigned int)xa->xa_flags & 3;
xa                 56 lib/xarray.c   static inline bool xa_track_free(const struct xarray *xa)
xa                 58 lib/xarray.c   	return xa->xa_flags & XA_FLAGS_TRACK_FREE;
xa                 61 lib/xarray.c   static inline bool xa_zero_busy(const struct xarray *xa)
xa                 63 lib/xarray.c   	return xa->xa_flags & XA_FLAGS_ZERO_BUSY;
xa                 66 lib/xarray.c   static inline void xa_mark_set(struct xarray *xa, xa_mark_t mark)
xa                 68 lib/xarray.c   	if (!(xa->xa_flags & XA_FLAGS_MARK(mark)))
xa                 69 lib/xarray.c   		xa->xa_flags |= XA_FLAGS_MARK(mark);
xa                 72 lib/xarray.c   static inline void xa_mark_clear(struct xarray *xa, xa_mark_t mark)
xa                 74 lib/xarray.c   	if (xa->xa_flags & XA_FLAGS_MARK(mark))
xa                 75 lib/xarray.c   		xa->xa_flags &= ~(XA_FLAGS_MARK(mark));
xa                188 lib/xarray.c   	entry = xa_head(xas->xa);
xa                204 lib/xarray.c   	void *entry = xa_entry(xas->xa, node, offset);
xa                209 lib/xarray.c   		entry = xa_entry(xas->xa, node, offset);
xa                302 lib/xarray.c   	if (xas->xa->xa_flags & XA_FLAGS_ACCOUNT)
xa                323 lib/xarray.c   	__must_hold(xas->xa->xa_lock)
xa                325 lib/xarray.c   	unsigned int lock_type = xa_lock_type(xas->xa);
xa                331 lib/xarray.c   	if (xas->xa->xa_flags & XA_FLAGS_ACCOUNT)
xa                368 lib/xarray.c   		if (xas->xa->xa_flags & XA_FLAGS_ACCOUNT)
xa                390 lib/xarray.c   	node->array = xas->xa;
xa                435 lib/xarray.c   	struct xarray *xa = xas->xa;
xa                444 lib/xarray.c   		entry = xa_entry_locked(xa, node, 0);
xa                449 lib/xarray.c   		if (xa_is_zero(entry) && xa_zero_busy(xa))
xa                453 lib/xarray.c   		RCU_INIT_POINTER(xa->xa_head, entry);
xa                454 lib/xarray.c   		if (xa_track_free(xa) && !node_get_mark(node, 0, XA_FREE_MARK))
xa                455 lib/xarray.c   			xa_mark_clear(xa, XA_FREE_MARK);
xa                488 lib/xarray.c   		parent = xa_parent_locked(xas->xa, node);
xa                494 lib/xarray.c   			xas->xa->xa_head = NULL;
xa                525 lib/xarray.c   		void *entry = xa_entry_locked(xas->xa, node, offset);
xa                538 lib/xarray.c   			parent = xa_parent_locked(xas->xa, node);
xa                557 lib/xarray.c   	struct xarray *xa = xas->xa;
xa                589 lib/xarray.c   			if (xa_track_free(xa) && mark == XA_FREE_MARK) {
xa                591 lib/xarray.c   				if (!xa_marked(xa, XA_FREE_MARK)) {
xa                593 lib/xarray.c   					xa_mark_set(xa, XA_FREE_MARK);
xa                595 lib/xarray.c   			} else if (xa_marked(xa, mark)) {
xa                612 lib/xarray.c   		rcu_assign_pointer(xa->xa_head, head);
xa                637 lib/xarray.c   	struct xarray *xa = xas->xa;
xa                645 lib/xarray.c   		entry = xa_head_locked(xa);
xa                647 lib/xarray.c   		if (!entry && xa_zero_busy(xa))
xa                654 lib/xarray.c   		entry = xa_head_locked(xa);
xa                655 lib/xarray.c   		slot = &xa->xa_head;
xa                662 lib/xarray.c   		entry = xa_entry_locked(xa, node, offset);
xa                666 lib/xarray.c   		entry = xa_head_locked(xa);
xa                667 lib/xarray.c   		slot = &xa->xa_head;
xa                676 lib/xarray.c   			if (xa_track_free(xa))
xa                722 lib/xarray.c   			xas->xa_node = xa_parent_locked(xas->xa, node);
xa                772 lib/xarray.c   	void __rcu **slot = &xas->xa->xa_head;
xa                829 lib/xarray.c   		next = xa_entry_locked(xas->xa, node, ++offset);
xa                856 lib/xarray.c   		return xa_marked(xas->xa, mark);
xa                882 lib/xarray.c   		node = xa_parent_locked(xas->xa, node);
xa                885 lib/xarray.c   	if (!xa_marked(xas->xa, mark))
xa                886 lib/xarray.c   		xa_mark_set(xas->xa, mark);
xa                914 lib/xarray.c   		node = xa_parent_locked(xas->xa, node);
xa                917 lib/xarray.c   	if (xa_marked(xas->xa, mark))
xa                918 lib/xarray.c   		xa_mark_clear(xas->xa, mark);
xa                938 lib/xarray.c   		if (xa_track_free(xas->xa) && mark == XA_FREE_MARK)
xa                975 lib/xarray.c   			if (!xa_is_sibling(xa_entry(xas->xa, node, offset)))
xa               1010 lib/xarray.c   		xas->xa_node = xa_parent(xas->xa, xas->xa_node);
xa               1016 lib/xarray.c   		entry = xa_entry(xas->xa, xas->xa_node, xas->xa_offset);
xa               1049 lib/xarray.c   		xas->xa_node = xa_parent(xas->xa, xas->xa_node);
xa               1055 lib/xarray.c   		entry = xa_entry(xas->xa, xas->xa_node, xas->xa_offset);
xa               1107 lib/xarray.c   			xas->xa_node = xa_parent(xas->xa, xas->xa_node);
xa               1111 lib/xarray.c   		entry = xa_entry(xas->xa, xas->xa_node, xas->xa_offset);
xa               1166 lib/xarray.c   		entry = xa_head(xas->xa);
xa               1171 lib/xarray.c   			if (xa_marked(xas->xa, mark))
xa               1183 lib/xarray.c   			xas->xa_node = xa_parent(xas->xa, xas->xa_node);
xa               1191 lib/xarray.c   			entry = xa_entry(xas->xa, xas->xa_node, xas->xa_offset);
xa               1210 lib/xarray.c   		entry = xa_entry(xas->xa, xas->xa_node, xas->xa_offset);
xa               1211 lib/xarray.c   		if (!entry && !(xa_track_free(xas->xa) && mark == XA_FREE_MARK))
xa               1269 lib/xarray.c   			xas->xa_node = xa_parent_locked(xas->xa, xas->xa_node);
xa               1274 lib/xarray.c   		curr = xa_entry_locked(xas->xa, xas->xa_node, ++xas->xa_offset);
xa               1280 lib/xarray.c   			curr = xa_entry_locked(xas->xa, xas->xa_node, 0);
xa               1298 lib/xarray.c   void *xa_load(struct xarray *xa, unsigned long index)
xa               1300 lib/xarray.c   	XA_STATE(xas, xa, index);
xa               1336 lib/xarray.c   void *__xa_erase(struct xarray *xa, unsigned long index)
xa               1338 lib/xarray.c   	XA_STATE(xas, xa, index);
xa               1355 lib/xarray.c   void *xa_erase(struct xarray *xa, unsigned long index)
xa               1359 lib/xarray.c   	xa_lock(xa);
xa               1360 lib/xarray.c   	entry = __xa_erase(xa, index);
xa               1361 lib/xarray.c   	xa_unlock(xa);
xa               1382 lib/xarray.c   void *__xa_store(struct xarray *xa, unsigned long index, void *entry, gfp_t gfp)
xa               1384 lib/xarray.c   	XA_STATE(xas, xa, index);
xa               1389 lib/xarray.c   	if (xa_track_free(xa) && !entry)
xa               1394 lib/xarray.c   		if (xa_track_free(xa))
xa               1419 lib/xarray.c   void *xa_store(struct xarray *xa, unsigned long index, void *entry, gfp_t gfp)
xa               1423 lib/xarray.c   	xa_lock(xa);
xa               1424 lib/xarray.c   	curr = __xa_store(xa, index, entry, gfp);
xa               1425 lib/xarray.c   	xa_unlock(xa);
xa               1447 lib/xarray.c   void *__xa_cmpxchg(struct xarray *xa, unsigned long index,
xa               1450 lib/xarray.c   	XA_STATE(xas, xa, index);
xa               1460 lib/xarray.c   			if (xa_track_free(xa) && entry && !curr)
xa               1485 lib/xarray.c   int __xa_insert(struct xarray *xa, unsigned long index, void *entry, gfp_t gfp)
xa               1487 lib/xarray.c   	XA_STATE(xas, xa, index);
xa               1499 lib/xarray.c   			if (xa_track_free(xa))
xa               1560 lib/xarray.c   void *xa_store_range(struct xarray *xa, unsigned long first,
xa               1563 lib/xarray.c   	XA_STATE(xas, xa, 0);
xa               1614 lib/xarray.c   int __xa_alloc(struct xarray *xa, u32 *id, void *entry,
xa               1617 lib/xarray.c   	XA_STATE(xas, xa, 0);
xa               1621 lib/xarray.c   	if (WARN_ON_ONCE(!xa_track_free(xa)))
xa               1663 lib/xarray.c   int __xa_alloc_cyclic(struct xarray *xa, u32 *id, void *entry,
xa               1670 lib/xarray.c   	ret = __xa_alloc(xa, id, entry, limit, gfp);
xa               1671 lib/xarray.c   	if ((xa->xa_flags & XA_FLAGS_ALLOC_WRAPPED) && ret == 0) {
xa               1672 lib/xarray.c   		xa->xa_flags &= ~XA_FLAGS_ALLOC_WRAPPED;
xa               1678 lib/xarray.c   		ret = __xa_alloc(xa, id, entry, limit, gfp);
xa               1686 lib/xarray.c   			xa->xa_flags |= XA_FLAGS_ALLOC_WRAPPED;
xa               1702 lib/xarray.c   void __xa_set_mark(struct xarray *xa, unsigned long index, xa_mark_t mark)
xa               1704 lib/xarray.c   	XA_STATE(xas, xa, index);
xa               1720 lib/xarray.c   void __xa_clear_mark(struct xarray *xa, unsigned long index, xa_mark_t mark)
xa               1722 lib/xarray.c   	XA_STATE(xas, xa, index);
xa               1742 lib/xarray.c   bool xa_get_mark(struct xarray *xa, unsigned long index, xa_mark_t mark)
xa               1744 lib/xarray.c   	XA_STATE(xas, xa, index);
xa               1772 lib/xarray.c   void xa_set_mark(struct xarray *xa, unsigned long index, xa_mark_t mark)
xa               1774 lib/xarray.c   	xa_lock(xa);
xa               1775 lib/xarray.c   	__xa_set_mark(xa, index, mark);
xa               1776 lib/xarray.c   	xa_unlock(xa);
xa               1790 lib/xarray.c   void xa_clear_mark(struct xarray *xa, unsigned long index, xa_mark_t mark)
xa               1792 lib/xarray.c   	xa_lock(xa);
xa               1793 lib/xarray.c   	__xa_clear_mark(xa, index, mark);
xa               1794 lib/xarray.c   	xa_unlock(xa);
xa               1815 lib/xarray.c   void *xa_find(struct xarray *xa, unsigned long *indexp,
xa               1818 lib/xarray.c   	XA_STATE(xas, xa, *indexp);
xa               1865 lib/xarray.c   void *xa_find_after(struct xarray *xa, unsigned long *indexp,
xa               1868 lib/xarray.c   	XA_STATE(xas, xa, *indexp + 1);
xa               1962 lib/xarray.c   unsigned int xa_extract(struct xarray *xa, void **dst, unsigned long start,
xa               1965 lib/xarray.c   	XA_STATE(xas, xa, start);
xa               1986 lib/xarray.c   void xa_destroy(struct xarray *xa)
xa               1988 lib/xarray.c   	XA_STATE(xas, xa, 0);
xa               1994 lib/xarray.c   	entry = xa_head_locked(xa);
xa               1995 lib/xarray.c   	RCU_INIT_POINTER(xa->xa_head, NULL);
xa               1997 lib/xarray.c   	if (xa_zero_busy(xa))
xa               1998 lib/xarray.c   		xa_mark_clear(xa, XA_FREE_MARK);
xa               2072 lib/xarray.c   void xa_dump(const struct xarray *xa)
xa               2074 lib/xarray.c   	void *entry = xa->xa_head;
xa               2077 lib/xarray.c   	pr_info("xarray: %px head %px flags %x marks %d %d %d\n", xa, entry,
xa               2078 lib/xarray.c   			xa->xa_flags, xa_marked(xa, XA_MARK_0),
xa               2079 lib/xarray.c   			xa_marked(xa, XA_MARK_1), xa_marked(xa, XA_MARK_2));
xa                 49 net/core/xdp.c 	const struct xdp_mem_allocator *xa = ptr;
xa                 52 net/core/xdp.c 	return xa->mem.id != mem_id;
xa                 69 net/core/xdp.c 	struct xdp_mem_allocator *xa;
xa                 71 net/core/xdp.c 	xa = container_of(rcu, struct xdp_mem_allocator, rcu);
xa                 74 net/core/xdp.c 	ida_simple_remove(&mem_id_pool, xa->mem.id);
xa                 77 net/core/xdp.c 	xa->mem.id = 0xFFFF;
xa                 78 net/core/xdp.c 	xa->mem.type = 0xF0F0;
xa                 79 net/core/xdp.c 	xa->allocator = (void *)0xDEAD9001;
xa                 81 net/core/xdp.c 	kfree(xa);
xa                 84 net/core/xdp.c static void mem_xa_remove(struct xdp_mem_allocator *xa)
xa                 86 net/core/xdp.c 	trace_mem_disconnect(xa);
xa                 88 net/core/xdp.c 	if (!rhashtable_remove_fast(mem_id_ht, &xa->node, mem_id_rht_params))
xa                 89 net/core/xdp.c 		call_rcu(&xa->rcu, __xdp_mem_allocator_rcu_free);
xa                 94 net/core/xdp.c 	struct xdp_mem_allocator *xa;
xa                103 net/core/xdp.c 		while ((xa = rhashtable_walk_next(&iter)) && !IS_ERR(xa)) {
xa                104 net/core/xdp.c 			if (xa->allocator == allocator)
xa                105 net/core/xdp.c 				mem_xa_remove(xa);
xa                110 net/core/xdp.c 	} while (xa == ERR_PTR(-EAGAIN));
xa                118 net/core/xdp.c 	struct xdp_mem_allocator *xa;
xa                122 net/core/xdp.c 	xa = rhashtable_lookup_fast(mem_id_ht, &id, mem_id_rht_params);
xa                123 net/core/xdp.c 	if (!xa) {
xa                129 net/core/xdp.c 	trace_mem_disconnect(xa);
xa                131 net/core/xdp.c 	if (!rhashtable_remove_fast(mem_id_ht, &xa->node, mem_id_rht_params))
xa                132 net/core/xdp.c 		call_rcu(&xa->rcu, __xdp_mem_allocator_rcu_free);
xa                139 net/core/xdp.c 	struct xdp_mem_allocator *xa;
xa                155 net/core/xdp.c 		xa = rhashtable_lookup(mem_id_ht, &id, mem_id_rht_params);
xa                156 net/core/xdp.c 		page_pool_destroy(xa->page_pool);
xa                370 net/core/xdp.c 	struct xdp_mem_allocator *xa;
xa                377 net/core/xdp.c 		xa = rhashtable_lookup(mem_id_ht, &mem->id, mem_id_rht_params);
xa                380 net/core/xdp.c 		page_pool_put_page(xa->page_pool, page, napi_direct);
xa                394 net/core/xdp.c 		xa = rhashtable_lookup(mem_id_ht, &mem->id, mem_id_rht_params);
xa                395 net/core/xdp.c 		xa->zc_alloc->free(xa->zc_alloc, handle);
xa                424 net/core/xdp.c 	struct xdp_mem_allocator *xa;
xa                428 net/core/xdp.c 	xa = rhashtable_lookup(mem_id_ht, &mem->id, mem_id_rht_params);
xa                430 net/core/xdp.c 	if (xa)
xa                431 net/core/xdp.c 		page_pool_release_page(xa->page_pool, page);
xa                 21 tools/testing/radix-tree/iteration_check.c void my_item_insert(struct xarray *xa, unsigned long index)
xa                 23 tools/testing/radix-tree/iteration_check.c 	XA_STATE(xas, xa, index);
xa                 35 tools/testing/radix-tree/iteration_check_2.c 	struct xarray *xa = arg;
xa                 43 tools/testing/radix-tree/iteration_check_2.c 			xa_store(xa, i, xa_mk_value(i), GFP_KERNEL);
xa                 44 tools/testing/radix-tree/iteration_check_2.c 			xa_set_mark(xa, i, XA_MARK_0);
xa                 47 tools/testing/radix-tree/iteration_check_2.c 			xa_erase(xa, i);
xa                 15 tools/testing/radix-tree/multiorder.c static int item_insert_order(struct xarray *xa, unsigned long index,
xa                 18 tools/testing/radix-tree/multiorder.c 	XA_STATE_ORDER(xas, xa, index, order);
xa                 34 tools/testing/radix-tree/multiorder.c void multiorder_iteration(struct xarray *xa)
xa                 36 tools/testing/radix-tree/multiorder.c 	XA_STATE(xas, xa, 0);
xa                 47 tools/testing/radix-tree/multiorder.c 		err = item_insert_order(xa, index[i], order[i]);
xa                 71 tools/testing/radix-tree/multiorder.c 	item_kill_tree(xa);
xa                 74 tools/testing/radix-tree/multiorder.c void multiorder_tagged_iteration(struct xarray *xa)
xa                 76 tools/testing/radix-tree/multiorder.c 	XA_STATE(xas, xa, 0);
xa                 90 tools/testing/radix-tree/multiorder.c 		assert(!item_insert_order(xa, index[i], order[i]));
xa                 92 tools/testing/radix-tree/multiorder.c 	assert(!xa_marked(xa, XA_MARK_1));
xa                 95 tools/testing/radix-tree/multiorder.c 		xa_set_mark(xa, tag_index[i], XA_MARK_1);
xa                122 tools/testing/radix-tree/multiorder.c 	assert(tag_tagged_items(xa, 0, ULONG_MAX, TAG_ENTRIES, XA_MARK_1,
xa                149 tools/testing/radix-tree/multiorder.c 	assert(tag_tagged_items(xa, 1, ULONG_MAX, MT_NUM_ENTRIES * 2, XA_MARK_1,
xa                159 tools/testing/radix-tree/multiorder.c 	item_kill_tree(xa);
xa                198 tools/testing/radix-tree/multiorder.c static void multiorder_iteration_race(struct xarray *xa)
xa                204 tools/testing/radix-tree/multiorder.c 	pthread_create(&worker_thread[0], NULL, &creator_func, xa);
xa                206 tools/testing/radix-tree/multiorder.c 		pthread_create(&worker_thread[i], NULL, &iterator_func, xa);
xa                211 tools/testing/radix-tree/multiorder.c 	item_kill_tree(xa);
xa                 79 tools/testing/radix-tree/test.c int item_delete_rcu(struct xarray *xa, unsigned long index)
xa                 81 tools/testing/radix-tree/test.c 	struct item *item = xa_erase(xa, index);
xa                173 tools/testing/radix-tree/test.c int tag_tagged_items(struct xarray *xa, unsigned long start, unsigned long end,
xa                176 tools/testing/radix-tree/test.c 	XA_STATE(xas, xa, start);
xa                255 tools/testing/radix-tree/test.c void item_kill_tree(struct xarray *xa)
xa                257 tools/testing/radix-tree/test.c 	XA_STATE(xas, xa, 0);
xa                267 tools/testing/radix-tree/test.c 	assert(xa_empty(xa));
xa                 18 tools/testing/radix-tree/test.h int item_delete_rcu(struct xarray *xa, unsigned long index);