All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] IB/cxgb3: Fix error codes in iwch_alloc_mr()
@ 2017-07-13  7:48 ` Dan Carpenter
  0 siblings, 0 replies; 6+ messages in thread
From: Dan Carpenter @ 2017-07-13  7:48 UTC (permalink / raw)
  To: Steve Wise
  Cc: Doug Ledford, Sean Hefty, Hal Rosenstock,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA,
	kernel-janitors-u79uwXL29TY76Z2rM5mHXA

We accidentally don't set the error code on some error paths.  It means
return ERR_PTR(0) which is NULL and results in a NULL dereference in the
caller.

Fixes: 13a239330abd ("RDMA/cxgb3: Don't ignore insert_handle() failures")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

diff --git a/drivers/infiniband/hw/cxgb3/iwch_provider.c b/drivers/infiniband/hw/cxgb3/iwch_provider.c
index 29d30744d6c9..0cd0c1fa27d4 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_provider.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_provider.c
@@ -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);

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH] IB/cxgb3: Fix error codes in iwch_alloc_mr()
@ 2017-07-13  7:48 ` Dan Carpenter
  0 siblings, 0 replies; 6+ messages in thread
From: Dan Carpenter @ 2017-07-13  7:48 UTC (permalink / raw)
  To: Steve Wise
  Cc: Doug Ledford, Sean Hefty, Hal Rosenstock,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA,
	kernel-janitors-u79uwXL29TY76Z2rM5mHXA

We accidentally don't set the error code on some error paths.  It means
return ERR_PTR(0) which is NULL and results in a NULL dereference in the
caller.

Fixes: 13a239330abd ("RDMA/cxgb3: Don't ignore insert_handle() failures")
Signed-off-by: Dan Carpenter <dan.carpenter-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>

diff --git a/drivers/infiniband/hw/cxgb3/iwch_provider.c b/drivers/infiniband/hw/cxgb3/iwch_provider.c
index 29d30744d6c9..0cd0c1fa27d4 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_provider.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_provider.c
@@ -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);
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* RE: [PATCH] IB/cxgb3: Fix error codes in iwch_alloc_mr()
  2017-07-13  7:48 ` Dan Carpenter
@ 2017-07-13 14:35   ` Steve Wise
  -1 siblings, 0 replies; 6+ messages in thread
From: Steve Wise @ 2017-07-13 14:35 UTC (permalink / raw)
  To: 'Dan Carpenter', 'Steve Wise'
  Cc: 'Doug Ledford', 'Sean Hefty',
	'Hal Rosenstock', linux-rdma, kernel-janitors


> We accidentally don't set the error code on some error paths.  It means
> return ERR_PTR(0) which is NULL and results in a NULL dereference in the
> caller.
> 
> Fixes: 13a239330abd ("RDMA/cxgb3: Don't ignore insert_handle() failures")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> 

Acked-by: Steve Wise <swise@opengridcomputing.com>


^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [PATCH] IB/cxgb3: Fix error codes in iwch_alloc_mr()
@ 2017-07-13 14:35   ` Steve Wise
  0 siblings, 0 replies; 6+ messages in thread
From: Steve Wise @ 2017-07-13 14:35 UTC (permalink / raw)
  To: 'Dan Carpenter', 'Steve Wise'
  Cc: 'Doug Ledford', 'Sean Hefty',
	'Hal Rosenstock', linux-rdma, kernel-janitors


> We accidentally don't set the error code on some error paths.  It means
> return ERR_PTR(0) which is NULL and results in a NULL dereference in the
> caller.
> 
> Fixes: 13a239330abd ("RDMA/cxgb3: Don't ignore insert_handle() failures")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> 

Acked-by: Steve Wise <swise@opengridcomputing.com>


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] IB/cxgb3: Fix error codes in iwch_alloc_mr()
  2017-07-13  7:48 ` Dan Carpenter
@ 2017-07-22 17:28   ` Doug Ledford
  -1 siblings, 0 replies; 6+ messages in thread
From: Doug Ledford @ 2017-07-22 17:28 UTC (permalink / raw)
  To: Dan Carpenter, Steve Wise
  Cc: Sean Hefty, Hal Rosenstock, linux-rdma, kernel-janitors


[-- Attachment #1.1: Type: text/plain, Size: 542 bytes --]

On 7/13/2017 3:48 AM, Dan Carpenter wrote:
> We accidentally don't set the error code on some error paths.  It means
> return ERR_PTR(0) which is NULL and results in a NULL dereference in the
> caller.
> 
> Fixes: 13a239330abd ("RDMA/cxgb3: Don't ignore insert_handle() failures")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

This was accepted into 4.13-rc, thanks.

-- 
Doug Ledford <dledford@redhat.com>
    GPG Key ID: B826A3330E572FDD
    Key fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] IB/cxgb3: Fix error codes in iwch_alloc_mr()
@ 2017-07-22 17:28   ` Doug Ledford
  0 siblings, 0 replies; 6+ messages in thread
From: Doug Ledford @ 2017-07-22 17:28 UTC (permalink / raw)
  To: Dan Carpenter, Steve Wise
  Cc: Sean Hefty, Hal Rosenstock, linux-rdma, kernel-janitors


[-- Attachment #1.1: Type: text/plain, Size: 542 bytes --]

On 7/13/2017 3:48 AM, Dan Carpenter wrote:
> We accidentally don't set the error code on some error paths.  It means
> return ERR_PTR(0) which is NULL and results in a NULL dereference in the
> caller.
> 
> Fixes: 13a239330abd ("RDMA/cxgb3: Don't ignore insert_handle() failures")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

This was accepted into 4.13-rc, thanks.

-- 
Doug Ledford <dledford@redhat.com>
    GPG Key ID: B826A3330E572FDD
    Key fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-07-22 17:28 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-13  7:48 [PATCH] IB/cxgb3: Fix error codes in iwch_alloc_mr() Dan Carpenter
2017-07-13  7:48 ` Dan Carpenter
2017-07-13 14:35 ` Steve Wise
2017-07-13 14:35   ` Steve Wise
2017-07-22 17:28 ` Doug Ledford
2017-07-22 17:28   ` Doug Ledford

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.