* [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.