Inline. > -----Original Message----- > From: Roland Dreier [mailto:rol...@purestorage.com] > Sent: Wednesday, March 21, 2012 11:27 PM > To: frank zago > Cc: Pandit, Parav; linux-rdma@vger.kernel.org > Subject: Re: [PATCH 6/9] ocrdma: Driver for Emulex OneConnect RDMA > adapter > > On Wed, Mar 21, 2012 at 10:42 AM, frank zago > <fz...@systemfabricworks.com> wrote: > > On 03/20/2012 05:39 PM, parav.pan...@emulex.com wrote: > >> +struct ib_mr *ocrdma_get_dma_mr(struct ib_pd *ibpd, int acc) { > >> + struct ocrdma_mr *mr; > >> + > >> + mr = ocrdma_alloc_lkey(ibpd, acc, 0, > >> + OCRDMA_ADDR_CHECK_DISABLE); > >> + if (!mr) > >> + return ERR_PTR(-ENOMEM); > > > > ocrdma_alloc_lkey does not return NULL on error. > I'll fix this part.
> Good catch! Even more to the point, ocrdma_alloc_lkey() doesn't return a > struct ocrdma_mr* on success. So this function is totally broken. > It does returns ocrdma_mr* on success. Why do you think it doesn't return? Below is the snippet. status = ocrdma_mbx_alloc_lkey(dev, &mr->hwmr, pd->id, addr_check); if (status) { kfree(mr); return ERR_PTR(-ENOMEM); } mr->pd = pd; atomic_inc(&pd->use_cnt); mr->ibmr.lkey = mr->hwmr.lkey; if (mr->hwmr.remote_wr || mr->hwmr.remote_rd) mr->ibmr.rkey = mr->hwmr.lkey; return mr; > - R. -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html