diff mbox series

[rdma-next] RDMA/cxgb4: remove unnecessary NULL check in __c4iw_poll_cq_one()

Message ID 20221215123030.155378-1-aleksei.kodanev@bell-sw.com (mailing list archive)
State Accepted
Headers show
Series [rdma-next] RDMA/cxgb4: remove unnecessary NULL check in __c4iw_poll_cq_one() | expand

Commit Message

Alexey Kodanev Dec. 15, 2022, 12:30 p.m. UTC
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>
---
 drivers/infiniband/hw/cxgb4/cq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Leon Romanovsky Dec. 18, 2022, 10 a.m. UTC | #1
On Thu, Dec 15, 2022 at 03:30:30PM +0300, Alexey Kodanev wrote:
> 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>
> ---
>  drivers/infiniband/hw/cxgb4/cq.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 

Let's wait till merge window ends.

Thanks,
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Leon Romanovsky Dec. 27, 2022, 1:49 p.m. UTC | #2
On Thu, 15 Dec 2022 15:30:30 +0300, Alexey Kodanev wrote:
> 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;
> 
> [...]

Applied, thanks!

[1/1] RDMA/cxgb4: remove unnecessary NULL check in __c4iw_poll_cq_one()
      https://git.kernel.org/rdma/rdma/c/cab30a98352511

Best regards,
diff mbox series

Patch

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;