RDMA/hns: Initialize all fields of doorbells to zero
authorLang Cheng <chenglang@huawei.com>
Thu, 20 Feb 2020 01:34:31 +0000 (09:34 +0800)
committerJason Gunthorpe <jgg@mellanox.com>
Thu, 20 Feb 2020 17:22:02 +0000 (13:22 -0400)
Prevent uninitialized fields when new fields are added, and make code look
simpler.

Link: https://lore.kernel.org/r/1582162471-50361-1-git-send-email-liweihang@huawei.com
Signed-off-by: Lang Cheng <chenglang@huawei.com>
Signed-off-by: Weihang Li <liweihang@huawei.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/hw/hns/hns_roce_hw_v1.c
drivers/infiniband/hw/hns/hns_roce_hw_v2.c

index c6e6658..89dac44 100644 (file)
@@ -69,7 +69,7 @@ static int hns_roce_v1_post_send(struct ib_qp *ibqp,
        struct hns_roce_wqe_data_seg *dseg = NULL;
        struct hns_roce_qp *qp = to_hr_qp(ibqp);
        struct device *dev = &hr_dev->pdev->dev;
-       struct hns_roce_sq_db sq_db;
+       struct hns_roce_sq_db sq_db = {};
        int ps_opcode = 0, i = 0;
        unsigned long flags = 0;
        void *wqe = NULL;
@@ -318,8 +318,6 @@ out:
                /* Memory barrier */
                wmb();
 
-               sq_db.u32_4 = 0;
-               sq_db.u32_8 = 0;
                roce_set_field(sq_db.u32_4, SQ_DOORBELL_U32_4_SQ_HEAD_M,
                               SQ_DOORBELL_U32_4_SQ_HEAD_S,
                              (qp->sq.head & ((qp->sq.wqe_cnt << 1) - 1)));
@@ -351,7 +349,7 @@ static int hns_roce_v1_post_recv(struct ib_qp *ibqp,
        struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
        struct hns_roce_dev *hr_dev = to_hr_dev(ibqp->device);
        struct device *dev = &hr_dev->pdev->dev;
-       struct hns_roce_rq_db rq_db;
+       struct hns_roce_rq_db rq_db = {};
        __le32 doorbell[2] = {0};
        unsigned long flags = 0;
        unsigned int wqe_idx;
@@ -418,9 +416,6 @@ out:
                                   ROCEE_QP1C_CFG3_0_REG +
                                   QP1C_CFGN_OFFSET * hr_qp->phy_port, reg_val);
                } else {
-                       rq_db.u32_4 = 0;
-                       rq_db.u32_8 = 0;
-
                        roce_set_field(rq_db.u32_4, RQ_DOORBELL_U32_4_RQ_HEAD_M,
                                       RQ_DOORBELL_U32_4_RQ_HEAD_S,
                                       hr_qp->rq.head);
index 66c1cfe..dee1cc8 100644 (file)
@@ -255,7 +255,7 @@ static int hns_roce_v2_post_send(struct ib_qp *ibqp,
        struct hns_roce_qp *qp = to_hr_qp(ibqp);
        struct hns_roce_wqe_frmr_seg *fseg;
        struct device *dev = hr_dev->dev;
-       struct hns_roce_v2_db sq_db;
+       struct hns_roce_v2_db sq_db = {};
        unsigned int owner_bit;
        unsigned int sge_idx;
        unsigned int wqe_idx;
@@ -583,9 +583,6 @@ out:
                /* Memory barrier */
                wmb();
 
-               sq_db.byte_4 = 0;
-               sq_db.parameter = 0;
-
                roce_set_field(sq_db.byte_4, V2_DB_BYTE_4_TAG_M,
                               V2_DB_BYTE_4_TAG_S, qp->doorbell_qpn);
                roce_set_field(sq_db.byte_4, V2_DB_BYTE_4_CMD_M,