]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - queue-4.14/ib-qib-hfi1-rdmavt-correct-ibv_devinfo-max_mr-value.patch
fixes for 4.14
[thirdparty/kernel/stable-queue.git] / queue-4.14 / ib-qib-hfi1-rdmavt-correct-ibv_devinfo-max_mr-value.patch
1 From 12f30d7d1718260407976ff21d3a07dc1d3e701f Mon Sep 17 00:00:00 2001
2 From: Mike Marciniszyn <mike.marciniszyn@intel.com>
3 Date: Fri, 24 May 2019 11:44:51 -0400
4 Subject: IB/{qib, hfi1, rdmavt}: Correct ibv_devinfo max_mr value
5
6 [ Upstream commit 35164f5259a47ea756fa1deb3e463ac2a4f10dc9 ]
7
8 The command 'ibv_devinfo -v' reports 0 for max_mr.
9
10 Fix by assigning the query values after the mr lkey_table has been built
11 rather than early on in the driver.
12
13 Fixes: 7b1e2099adc8 ("IB/rdmavt: Move memory registration into rdmavt")
14 Reviewed-by: Josh Collier <josh.d.collier@intel.com>
15 Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
16 Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
17 Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
18 Signed-off-by: Sasha Levin <sashal@kernel.org>
19 ---
20 drivers/infiniband/hw/hfi1/verbs.c | 2 --
21 drivers/infiniband/hw/qib/qib_verbs.c | 2 --
22 drivers/infiniband/sw/rdmavt/mr.c | 2 ++
23 3 files changed, 2 insertions(+), 4 deletions(-)
24
25 diff --git a/drivers/infiniband/hw/hfi1/verbs.c b/drivers/infiniband/hw/hfi1/verbs.c
26 index 2e8854ba18cf..f4372afa0e81 100644
27 --- a/drivers/infiniband/hw/hfi1/verbs.c
28 +++ b/drivers/infiniband/hw/hfi1/verbs.c
29 @@ -1400,8 +1400,6 @@ static void hfi1_fill_device_attr(struct hfi1_devdata *dd)
30 rdi->dparms.props.max_cq = hfi1_max_cqs;
31 rdi->dparms.props.max_ah = hfi1_max_ahs;
32 rdi->dparms.props.max_cqe = hfi1_max_cqes;
33 - rdi->dparms.props.max_mr = rdi->lkey_table.max;
34 - rdi->dparms.props.max_fmr = rdi->lkey_table.max;
35 rdi->dparms.props.max_map_per_fmr = 32767;
36 rdi->dparms.props.max_pd = hfi1_max_pds;
37 rdi->dparms.props.max_qp_rd_atom = HFI1_MAX_RDMA_ATOMIC;
38 diff --git a/drivers/infiniband/hw/qib/qib_verbs.c b/drivers/infiniband/hw/qib/qib_verbs.c
39 index 9d92aeb8d9a1..350bc29a066f 100644
40 --- a/drivers/infiniband/hw/qib/qib_verbs.c
41 +++ b/drivers/infiniband/hw/qib/qib_verbs.c
42 @@ -1495,8 +1495,6 @@ static void qib_fill_device_attr(struct qib_devdata *dd)
43 rdi->dparms.props.max_cq = ib_qib_max_cqs;
44 rdi->dparms.props.max_cqe = ib_qib_max_cqes;
45 rdi->dparms.props.max_ah = ib_qib_max_ahs;
46 - rdi->dparms.props.max_mr = rdi->lkey_table.max;
47 - rdi->dparms.props.max_fmr = rdi->lkey_table.max;
48 rdi->dparms.props.max_map_per_fmr = 32767;
49 rdi->dparms.props.max_qp_rd_atom = QIB_MAX_RDMA_ATOMIC;
50 rdi->dparms.props.max_qp_init_rd_atom = 255;
51 diff --git a/drivers/infiniband/sw/rdmavt/mr.c b/drivers/infiniband/sw/rdmavt/mr.c
52 index e7013d2d4f0e..d5b51f4cb49a 100644
53 --- a/drivers/infiniband/sw/rdmavt/mr.c
54 +++ b/drivers/infiniband/sw/rdmavt/mr.c
55 @@ -96,6 +96,8 @@ int rvt_driver_mr_init(struct rvt_dev_info *rdi)
56 for (i = 0; i < rdi->lkey_table.max; i++)
57 RCU_INIT_POINTER(rdi->lkey_table.table[i], NULL);
58
59 + rdi->dparms.props.max_mr = rdi->lkey_table.max;
60 + rdi->dparms.props.max_fmr = rdi->lkey_table.max;
61 return 0;
62 }
63
64 --
65 2.20.1
66