diff options
author | Alexey Kodanev <aleksei.kodanev@bell-sw.com> | 2022-12-15 15:30:30 +0300 |
---|---|---|
committer | Leon Romanovsky <leon@kernel.org> | 2022-12-27 15:27:59 +0200 |
commit | cab30a98352511c0cb3ab6deb5d06b55fe4eb10a (patch) | |
tree | 06b5565265496ede891913817daacf417673fa3f | |
parent | 1b8ba6e41f11fc6ad4e561e0de35075256ec207c (diff) | |
download | linux-cab30a98352511c0cb3ab6deb5d06b55fe4eb10a.tar.gz |
RDMA/cxgb4: remove unnecessary NULL check in __c4iw_poll_cq_one()
If 'qhp' is NULL then 'wq' is also NULL:
struct t4_wq *wq = qhp ? &qhp->wq : NULL;
...
ret = poll_cq(wq, ...);
if (ret)
goto out;
poll_cq(wq, ...) always returns a non-zero status if 'wq' is NULL,
either on a t4_next_cqe() error or on a 'wq == NULL' check.
Therefore, checking 'qhp' again after poll_cq() is redundant.
BTW, there're also 'qhp' dereference cases below poll_cq() without
any checks (c4iw_invalidate_mr(qhp->rhp,...)).
Detected using the static analysis tool - Svace.
Fixes: 4ab39e2f98f2 ("RDMA/cxgb4: Make c4iw_poll_cq_one() easier to analyze")
Signed-off-by: Alexey Kodanev <aleksei.kodanev@bell-sw.com>
Link: https://lore.kernel.org/r/20221215123030.155378-1-aleksei.kodanev@bell-sw.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
-rw-r--r-- | drivers/infiniband/hw/cxgb4/cq.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/cxgb4/cq.c b/drivers/infiniband/hw/cxgb4/cq.c index c7e8d7b3baa1..7e2835dcbc1c 100644 --- a/drivers/infiniband/hw/cxgb4/cq.c +++ b/drivers/infiniband/hw/cxgb4/cq.c @@ -767,7 +767,7 @@ static int __c4iw_poll_cq_one(struct c4iw_cq *chp, struct c4iw_qp *qhp, goto out; wc->wr_id = cookie; - wc->qp = qhp ? &qhp->ibqp : NULL; + wc->qp = &qhp->ibqp; wc->vendor_err = CQE_STATUS(&cqe); wc->wc_flags = 0; |