On Tue, Feb 26, 2019 at 12:15:59PM -0500, Dennis Dalessandro wrote: > On 2/26/2019 11:45 AM, Dennis Dalessandro wrote: > > struct hfi1_ctxtdata *hfi1_rcd_get_by_index(struct hfi1_devdata *dd, u16 ctxt); > > diff --git a/drivers/infiniband/hw/hfi1/init.c b/drivers/infiniband/hw/hfi1/init.c > > index 7841a0a..2cc5164 100644 > > +++ b/drivers/infiniband/hw/hfi1/init.c > > @@ -214,12 +214,12 @@ static void hfi1_rcd_free(struct kref *kref) > > struct hfi1_ctxtdata *rcd = > > container_of(kref, struct hfi1_ctxtdata, kref); > > - hfi1_free_ctxtdata(rcd->dd, rcd); > > - > > spin_lock_irqsave(&rcd->dd->uctxt_lock, flags); > > rcd->dd->rcd[rcd->ctxt] = NULL; > > spin_unlock_irqrestore(&rcd->dd->uctxt_lock, flags); > > + hfi1_free_ctxtdata(rcd->dd, rcd); > > + > > kfree(rcd); > > } > Whoops, hold off on pulling this one just yet. We need to take a closer look > at the above hunk. Oh, okay.. Please resend it Jason