| From cec8c02e6dac9acc156283a2aae48b36781e829f Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 7 Jul 2020 16:09:31 +0300 |
| Subject: RDMA/siw: Fix reporting vendor_part_id |
| |
| From: Kamal Heib <kamalheib1@gmail.com> |
| |
| [ Upstream commit 04340645f69ab7abb6f9052688a60f0213b3f79c ] |
| |
| Move the initialization of the vendor_part_id to be before calling |
| ib_register_device(), this is needed because the query_device() callback |
| is called from the context of ib_register_device() before initializing the |
| vendor_part_id, so the reported value is wrong. |
| |
| Fixes: bdcf26bf9b3a ("rdma/siw: network and RDMA core interface") |
| Link: https://lore.kernel.org/r/20200707130931.444724-1-kamalheib1@gmail.com |
| Signed-off-by: Kamal Heib <kamalheib1@gmail.com> |
| Reviewed-by: Bernard Metzler <bmt@zurich.ibm.com> |
| Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/infiniband/sw/siw/siw_main.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/infiniband/sw/siw/siw_main.c b/drivers/infiniband/sw/siw/siw_main.c |
| index 130b1e31b9780..fb66d67572787 100644 |
| --- a/drivers/infiniband/sw/siw/siw_main.c |
| +++ b/drivers/infiniband/sw/siw/siw_main.c |
| @@ -66,12 +66,13 @@ static int siw_device_register(struct siw_device *sdev, const char *name) |
| static int dev_id = 1; |
| int rv; |
| |
| + sdev->vendor_part_id = dev_id++; |
| + |
| rv = ib_register_device(base_dev, name); |
| if (rv) { |
| pr_warn("siw: device registration error %d\n", rv); |
| return rv; |
| } |
| - sdev->vendor_part_id = dev_id++; |
| |
| siw_dbg(base_dev, "HWaddr=%pM\n", sdev->netdev->dev_addr); |
| |
| -- |
| 2.25.1 |
| |