From: Lijun Ou <ouli...@huawei.com>

In old code, the value of qp state from qpc was assigned for
attr->qp_state. The value may be an error while attr_mask &
IB_QP_STATE is zero.

Signed-off-by: Lijun Ou <ouli...@huawei.com>
Reviewed-by: Wei Hu (Xavier) <xavier.hu...@huawei.com>
Signed-off-by: Salil Mehta  <salil.me...@huawei.com>
---
 drivers/infiniband/hw/hns/hns_roce_hw_v1.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v1.c 
b/drivers/infiniband/hw/hns/hns_roce_hw_v1.c
index 8ca36a7..2d48406 100644
--- a/drivers/infiniband/hw/hns/hns_roce_hw_v1.c
+++ b/drivers/infiniband/hw/hns/hns_roce_hw_v1.c
@@ -2571,7 +2571,7 @@ static int hns_roce_v1_m_qp(struct ib_qp *ibqp, const 
struct ib_qp_attr *attr,
        /* Every status migrate must change state */
        roce_set_field(context->qpc_bytes_144,
                       QP_CONTEXT_QPC_BYTES_144_QP_STATE_M,
-                      QP_CONTEXT_QPC_BYTES_144_QP_STATE_S, attr->qp_state);
+                      QP_CONTEXT_QPC_BYTES_144_QP_STATE_S, new_state);
 
        /* SW pass context to HW */
        ret = hns_roce_v1_qp_modify(hr_dev, &hr_qp->mtt,
-- 
1.7.9.5


Reply via email to