idr_alloc_cyclic
int idr_alloc_cyclic(struct idr *idp, void *ptr, int start, int end, gfp_t);
ret = idr_alloc_cyclic(&sriov->pv_id_table, ent, 0, 0, GFP_NOWAIT);
id = idr_alloc_cyclic(&cm.local_id_table, cm_id_priv, 0, 0, GFP_NOWAIT);