diff options
author | Christophe Jaillet <christophe.jaillet@wanadoo.fr> | 2017-02-18 12:28:15 +0100 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2017-02-19 09:27:29 -0500 |
commit | 4cd33aafe45866860b7c72401297d1efcd7bd8aa (patch) | |
tree | 191aa38d27eaf1854454ad94e2dca83c9a5270d6 /drivers/infiniband/hw/qedr/verbs.c | |
parent | e57f774db1fef3d983fd77db0f48f3f39875c65f (diff) |
RDMA/qedr: Fix some error handling
'qedr_alloc_pbl_tbl()' can not return NULL.
In qedr_init_user_queue():
- simplify the test for the return value, no need to test for NULL
- propagate the error pointer if needed, otherwise 0 (success) is returned.
This is spurious.
In init_mr_info():
- test the return value with IS_ERR
- propagate the error pointer if needed instead of an exlictit -ENOMEM.
This is a no-op as the only error pointer that we can have here is
already -ENOMEM
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: Ram Amrani <Ram.Amrani@cavium.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/hw/qedr/verbs.c')
-rw-r--r-- | drivers/infiniband/hw/qedr/verbs.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/infiniband/hw/qedr/verbs.c b/drivers/infiniband/hw/qedr/verbs.c index ef83a3f322d6..0c51657af151 100644 --- a/drivers/infiniband/hw/qedr/verbs.c +++ b/drivers/infiniband/hw/qedr/verbs.c @@ -771,8 +771,10 @@ static inline int qedr_init_user_queue(struct ib_ucontext *ib_ctx, goto err0; q->pbl_tbl = qedr_alloc_pbl_tbl(dev, &q->pbl_info, GFP_KERNEL); - if (IS_ERR_OR_NULL(q->pbl_tbl)) + if (IS_ERR(q->pbl_tbl)) { + rc = PTR_ERR(q->pbl_tbl); goto err0; + } qedr_populate_pbls(dev, q->umem, q->pbl_tbl, &q->pbl_info); @@ -2105,8 +2107,8 @@ static int init_mr_info(struct qedr_dev *dev, struct mr_info *info, goto done; info->pbl_table = qedr_alloc_pbl_tbl(dev, &info->pbl_info, GFP_KERNEL); - if (!info->pbl_table) { - rc = -ENOMEM; + if (IS_ERR(info->pbl_table)) { + rc = PTR_ERR(info->pbl_table); goto done; } @@ -2117,7 +2119,7 @@ static int init_mr_info(struct qedr_dev *dev, struct mr_info *info, * list and allocating another one */ tmp = qedr_alloc_pbl_tbl(dev, &info->pbl_info, GFP_KERNEL); - if (!tmp) { + if (IS_ERR(tmp)) { DP_DEBUG(dev, QEDR_MSG_MR, "Extra PBL is not allocated\n"); goto done; } |