On Tue, 20 Aug 2019 15:32:45 -0700, Matthew Wilcox wrote:
quoted hunk ↗ jump to hunk
@@ -305,8 +306,12 @@ static void *u32_get(struct tcf_proto *tp, u32 handle)
/* Protected by rtnl lock */
static u32 gen_new_htid(struct tc_u_common *tp_c, struct tc_u_hnode *ptr)
{
- int id = idr_alloc_cyclic(&tp_c->handle_idr, ptr, 1, 0x7FF, GFP_KERNEL);
- if (id < 0)
+ int err;
+ u32 id;
+
+ err = xa_alloc_cyclic(&tp_c->ht_xa, &id, ptr, XA_LIMIT(0, 0x7ff),
+ &tp_c->ht_next, GFP_KERNEL);
nit: indentation seems off here and a couple of other places.