RDMA/hns: Init qp context when modify qp from reset to init
authorLijun Ou <oulijun@huawei.com>
Sat, 8 Dec 2018 10:40:07 +0000 (18:40 +0800)
committerJason Gunthorpe <jgg@mellanox.com>
Tue, 11 Dec 2018 19:04:06 +0000 (12:04 -0700)
It needs to clear qp context previous when init qp context.  Otherwise,
the newly created qp context residue has the contents of the qp context
before the uninstall, and the qp context content is disordered, causing
the task to fail.

Signed-off-by: Lijun Ou <oulijun@huawei.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/hw/hns/hns_roce_hw_v2.c

index 835b783..1cffe74 100644 (file)
@@ -3695,6 +3695,7 @@ static int hns_roce_v2_modify_qp(struct ib_qp *ibqp,
         */
        memset(qpc_mask, 0xff, sizeof(*qpc_mask));
        if (cur_state == IB_QPS_RESET && new_state == IB_QPS_INIT) {
+               memset(qpc_mask, 0, sizeof(*qpc_mask));
                modify_qp_reset_to_init(ibqp, attr, attr_mask, context,
                                        qpc_mask);
        } else if (cur_state == IB_QPS_INIT && new_state == IB_QPS_INIT) {