RDMA/bnxt_re: Decrement resource stats correctly
authorSelvin Xavier <selvin.xavier@broadcom.com>
Wed, 20 Sep 2023 08:41:20 +0000 (01:41 -0700)
committerLeon Romanovsky <leon@kernel.org>
Thu, 21 Sep 2023 08:56:23 +0000 (11:56 +0300)
rc_qp_count and ud_qp_count is not decremented during qp destroy.
Fix this.

Fixes: cb95709e0dca ("bnxt_re: Update the hw counters for resource stats")
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
Link: https://lore.kernel.org/r/1695199280-13520-3-git-send-email-selvin.xavier@broadcom.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/bnxt_re/ib_verbs.c

index 0848c2c..faa88d1 100644 (file)
@@ -910,6 +910,10 @@ int bnxt_re_destroy_qp(struct ib_qp *ib_qp, struct ib_udata *udata)
        list_del(&qp->list);
        mutex_unlock(&rdev->qp_lock);
        atomic_dec(&rdev->stats.res.qp_count);
+       if (qp->qplib_qp.type == CMDQ_CREATE_QP_TYPE_RC)
+               atomic_dec(&rdev->stats.res.rc_qp_count);
+       else if (qp->qplib_qp.type == CMDQ_CREATE_QP_TYPE_UD)
+               atomic_dec(&rdev->stats.res.ud_qp_count);
 
        ib_umem_release(qp->rumem);
        ib_umem_release(qp->sumem);