RE: [PATCH 6/9] ocrdma: Driver for Emulex OneConnect RDMA adapter

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Inline.

> -----Original Message-----
> From: Roland Dreier [mailto:roland@xxxxxxxxxxxxxxx]
> Sent: Wednesday, March 21, 2012 11:27 PM
> To: frank zago
> Cc: Pandit, Parav; linux-rdma@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH 6/9] ocrdma: Driver for Emulex OneConnect RDMA
> adapter
> 
> On Wed, Mar 21, 2012 at 10:42 AM, frank zago
> <fzago@xxxxxxxxxxxxxxxxxxxxx> wrote:
> > On 03/20/2012 05:39 PM, parav.pandit@xxxxxxxxxx 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux