On Thu, Feb 21, 2019 at 01:45:26PM -0600, Steve Wise wrote: > > @@ -2147,7 +2147,9 @@ static int c4iw_reconnect(struct c4iw_ep *ep) > > err = -ENOMEM; > > goto fail2; > > } > > - insert_handle(ep->com.dev, &ep->com.dev->atid_idr, ep, ep->atid); > > + err = xa_insert_irq(&ep->com.dev->atids, ep->atid, ep, > > GFP_KERNEL); > > + if (err) > > + goto fail5; > > > > /* find a route */ > > if (ep->com.cm_id->m_local_addr.ss_family == AF_INET) { > > @@ -2198,7 +2200,8 @@ static int c4iw_reconnect(struct c4iw_ep *ep) > > fail4: > > dst_release(ep->dst); > > fail3: > > - remove_handle(ep->com.dev, &ep->com.dev->atid_idr, ep->atid); > > + xa_erase_irq(&ep->com.dev->atids, ep->atid); > > +fail5: > > cxgb4_free_atid(ep->com.dev->rdev.lldi.tids, ep->atid); > > fail2: > > Don't like the out-of-order label. Care to rename all of them to make them > more descriptive and avoid this 4, 3, 5, 2 sequence? That seemed incredibly dangerous to me. I'm not sure I could get it right. How about I introduce this one with a name, like most drivers do?