From 485a60f8850630c37856f68be3fbf37bfa9ac019 Mon Sep 17 00:00:00 2001 From: wenglianfa Date: Thu, 25 Jul 2024 11:06:01 +0800 Subject: [PATCH 3/4] libhns: Fix memory leakage when DCA is enabled After DCA is enabled and a QP is created, the memory block applied for DCA is not free when the QP is destroyed. Here fix it. Fixes: 3aa4683ef700 ("libhns: Add support for attaching QP's WQE buffer") Signed-off-by: wenglianfa --- providers/hns/hns_roce_u_verbs.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c index 090efbf..dae8298 100644 --- a/providers/hns/hns_roce_u_verbs.c +++ b/providers/hns/hns_roce_u_verbs.c @@ -1617,7 +1617,10 @@ static void qp_free_wqe(struct hns_roce_qp *qp) if (qp->rq.wqe_cnt) free(qp->rq.wrid); - hns_roce_free_buf(&qp->buf); + if (qp->dca_wqe.bufs) + free(qp->dca_wqe.bufs); + else + hns_roce_free_buf(&qp->buf); } static int qp_alloc_wqe(struct ibv_qp_init_attr_ex *attr, -- 2.33.0