]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
IB/{qib, hfi1, rdmavt}: Correct ibv_devinfo max_mr value
authorMike Marciniszyn <mike.marciniszyn@intel.com>
Fri, 24 May 2019 15:44:51 +0000 (11:44 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 25 Jun 2019 03:36:51 +0000 (11:36 +0800)
[ Upstream commit 35164f5259a47ea756fa1deb3e463ac2a4f10dc9 ]

The command 'ibv_devinfo -v' reports 0 for max_mr.

Fix by assigning the query values after the mr lkey_table has been built
rather than early on in the driver.

Fixes: 7b1e2099adc8 ("IB/rdmavt: Move memory registration into rdmavt")
Reviewed-by: Josh Collier <josh.d.collier@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/hfi1/verbs.c
drivers/infiniband/hw/qib/qib_verbs.c
drivers/infiniband/sw/rdmavt/mr.c

index 2e8854ba18cfed00123303d2fe26bbd5d567a00b..f4372afa0e81622271e0e74be9f739cd1ede60d1 100644 (file)
@@ -1400,8 +1400,6 @@ static void hfi1_fill_device_attr(struct hfi1_devdata *dd)
        rdi->dparms.props.max_cq = hfi1_max_cqs;
        rdi->dparms.props.max_ah = hfi1_max_ahs;
        rdi->dparms.props.max_cqe = hfi1_max_cqes;
-       rdi->dparms.props.max_mr = rdi->lkey_table.max;
-       rdi->dparms.props.max_fmr = rdi->lkey_table.max;
        rdi->dparms.props.max_map_per_fmr = 32767;
        rdi->dparms.props.max_pd = hfi1_max_pds;
        rdi->dparms.props.max_qp_rd_atom = HFI1_MAX_RDMA_ATOMIC;
index 9d92aeb8d9a12e885a66d25fc7c8fa199a773b7f..350bc29a066f0596d430d9cc935dcee8cf767937 100644 (file)
@@ -1495,8 +1495,6 @@ static void qib_fill_device_attr(struct qib_devdata *dd)
        rdi->dparms.props.max_cq = ib_qib_max_cqs;
        rdi->dparms.props.max_cqe = ib_qib_max_cqes;
        rdi->dparms.props.max_ah = ib_qib_max_ahs;
-       rdi->dparms.props.max_mr = rdi->lkey_table.max;
-       rdi->dparms.props.max_fmr = rdi->lkey_table.max;
        rdi->dparms.props.max_map_per_fmr = 32767;
        rdi->dparms.props.max_qp_rd_atom = QIB_MAX_RDMA_ATOMIC;
        rdi->dparms.props.max_qp_init_rd_atom = 255;
index e7013d2d4f0ef3dbb035bb8af0196842f978e5d6..d5b51f4cb49a6496b210b04034f0379f92181f39 100644 (file)
@@ -96,6 +96,8 @@ int rvt_driver_mr_init(struct rvt_dev_info *rdi)
        for (i = 0; i < rdi->lkey_table.max; i++)
                RCU_INIT_POINTER(rdi->lkey_table.table[i], NULL);
 
+       rdi->dparms.props.max_mr = rdi->lkey_table.max;
+       rdi->dparms.props.max_fmr = rdi->lkey_table.max;
        return 0;
 }