RDMA/hns: Store mr len information into mr obj
authorLang Cheng <chenglang@huawei.com>
Fri, 8 May 2020 09:45:56 +0000 (17:45 +0800)
committerJason Gunthorpe <jgg@mellanox.com>
Tue, 19 May 2020 23:54:58 +0000 (20:54 -0300)
The length information should be stored in the struct ib_mr object,
otherwise the length value of a valid mr object would always be 0.

Link: https://lore.kernel.org/r/1588931159-56875-7-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_mr.c

index ecd76759d47aac9ec51520e4355cf1cc80074e35..f727b1875af83a28facdb973066dc2559948e0f3 100644 (file)
@@ -285,6 +285,7 @@ struct ib_mr *hns_roce_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
                goto err_alloc_pbl;
 
        mr->ibmr.rkey = mr->ibmr.lkey = mr->key;
+       mr->ibmr.length = length;
 
        return &mr->ibmr;
 
@@ -451,6 +452,7 @@ struct ib_mr *hns_roce_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
                goto err_pbl;
 
        mr->ibmr.rkey = mr->ibmr.lkey = mr->key;
+       mr->ibmr.length = length;
 
        return &mr->ibmr;