RDMA/hns: Fix the state of rereg mr
authorYixian Liu <liuyixian@huawei.com>
Sun, 3 Feb 2019 08:13:04 +0000 (16:13 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2019 08:21:22 +0000 (09:21 +0100)
[ Upstream commit ab22bf05216a6bb4812448f3a8609489047cf311 ]

The state of mr after reregister operation should be set to valid
state. Otherwise, it will keep the same as the state before reregistered.

Signed-off-by: Yixian Liu <liuyixian@huawei.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/hns/hns_roce_hw_v2.c

index 1eda8a2..a5ec900 100644 (file)
@@ -1776,6 +1776,9 @@ static int hns_roce_v2_rereg_write_mtpt(struct hns_roce_dev *hr_dev,
        struct hns_roce_v2_mpt_entry *mpt_entry = mb_buf;
        int ret = 0;
 
+       roce_set_field(mpt_entry->byte_4_pd_hop_st, V2_MPT_BYTE_4_MPT_ST_M,
+                      V2_MPT_BYTE_4_MPT_ST_S, V2_MPT_ST_VALID);
+
        if (flags & IB_MR_REREG_PD) {
                roce_set_field(mpt_entry->byte_4_pd_hop_st, V2_MPT_BYTE_4_PD_M,
                               V2_MPT_BYTE_4_PD_S, pdn);