From 23c210471029f58ee486525790a9c3906ae11601 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Fri, 8 Dec 2023 10:00:31 +0800 Subject: [PATCH] libhns: Fix uninitialized qp attr when flush cqe When flushing cqe, the state of qp needs to be modified. The incoming qp attr is not initialized, which may lead to undefined behavior. Fixes: e1726e934574 ("libhns: Support flush cqe for hip08 in user space") Signed-off-by: Chengchang Tang Signed-off-by: Junxian Huang --- providers/hns/hns_roce_u_hw_v2.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c index 374338b1b..6d574e8ca 100644 --- a/providers/hns/hns_roce_u_hw_v2.c +++ b/providers/hns/hns_roce_u_hw_v2.c @@ -362,7 +362,7 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, static int hns_roce_flush_cqe(struct hns_roce_qp *hr_qp, uint8_t status) { - struct ibv_qp_attr attr; + struct ibv_qp_attr attr = {}; int attr_mask; if (status != HNS_ROCE_V2_CQE_WR_FLUSH_ERR) { @@ -1260,8 +1260,8 @@ int hns_roce_u_v2_post_send(struct ibv_qp *ibvqp, struct ibv_send_wr *wr, struct hns_roce_qp *qp = to_hr_qp(ibvqp); struct hns_roce_sge_info sge_info = {}; struct hns_roce_rc_sq_wqe *wqe; + struct ibv_qp_attr attr = {}; unsigned int wqe_idx, nreq; - struct ibv_qp_attr attr; int ret; ret = check_qp_send(ibvqp); @@ -1411,7 +1411,7 @@ static int hns_roce_u_v2_post_recv(struct ibv_qp *ibvqp, struct ibv_recv_wr *wr, struct hns_roce_context *ctx = to_hr_ctx(ibvqp->context); struct hns_roce_qp *qp = to_hr_qp(ibvqp); unsigned int wqe_idx, nreq, max_sge; - struct ibv_qp_attr attr; + struct ibv_qp_attr attr = {}; int ret; ret = check_qp_recv(ibvqp); @@ -2551,7 +2551,7 @@ static int wr_complete(struct ibv_qp_ex *ibv_qp) struct hns_roce_context *ctx = to_hr_ctx(ibv_qp->qp_base.context); struct hns_roce_qp *qp = to_hr_qp(&ibv_qp->qp_base); unsigned int nreq = qp->sq.head - qp->rb_sq_head; - struct ibv_qp_attr attr; + struct ibv_qp_attr attr = {}; int err = qp->err; if (err) {