|
@@ -718,7 +718,7 @@ static struct ib_mr *iwch_alloc_mr(struct ib_pd *pd,
|
|
|
struct iwch_mr *mhp;
|
|
|
u32 mmid;
|
|
|
u32 stag = 0;
|
|
|
- int ret = 0;
|
|
|
+ int ret = -ENOMEM;
|
|
|
|
|
|
if (mr_type != IB_MR_TYPE_MEM_REG ||
|
|
|
max_num_sg > T3_MAX_FASTREG_DEPTH)
|
|
@@ -731,10 +731,8 @@ static struct ib_mr *iwch_alloc_mr(struct ib_pd *pd,
|
|
|
goto err;
|
|
|
|
|
|
mhp->pages = kcalloc(max_num_sg, sizeof(u64), GFP_KERNEL);
|
|
|
- if (!mhp->pages) {
|
|
|
- ret = -ENOMEM;
|
|
|
+ if (!mhp->pages)
|
|
|
goto pl_err;
|
|
|
- }
|
|
|
|
|
|
mhp->rhp = rhp;
|
|
|
ret = iwch_alloc_pbl(mhp, max_num_sg);
|
|
@@ -751,7 +749,8 @@ static struct ib_mr *iwch_alloc_mr(struct ib_pd *pd,
|
|
|
mhp->attr.state = 1;
|
|
|
mmid = (stag) >> 8;
|
|
|
mhp->ibmr.rkey = mhp->ibmr.lkey = stag;
|
|
|
- if (insert_handle(rhp, &rhp->mmidr, mhp, mmid))
|
|
|
+ ret = insert_handle(rhp, &rhp->mmidr, mhp, mmid);
|
|
|
+ if (ret)
|
|
|
goto err3;
|
|
|
|
|
|
pr_debug("%s mmid 0x%x mhp %p stag 0x%x\n", __func__, mmid, mhp, stag);
|