RDMA/core: Assign device ifindex before publishing the device
authorParav Pandit <parav@mellanox.com>
Thu, 6 Sep 2018 07:58:57 +0000 (10:58 +0300)
committerJason Gunthorpe <jgg@mellanox.com>
Thu, 6 Sep 2018 20:34:38 +0000 (14:34 -0600)
Even though device->ifindex is assigned before adding the device in the
list which is read by netlink flow, it is better to assign rdma device
index before publishing the device in the system to users and clients.

Signed-off-by: Parav Pandit <parav@mellanox.com>
Reviewed-by: Daniel Jurgens <danielj@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/core/device.c

index e1155067954b9bc48fc67ace56fefbf01a7c2788..5a680a88aa87b7513963c8658a2a6f5122964eda 100644 (file)
@@ -525,6 +525,8 @@ int ib_register_device(struct ib_device *device,
                goto port_cleanup;
        }
 
+       device->index = __dev_new_index();
+
        ret = ib_device_register_rdmacg(device);
        if (ret) {
                pr_warn("Couldn't register device with rdma cgroup\n");
@@ -551,7 +553,6 @@ int ib_register_device(struct ib_device *device,
                if (!add_client_context(device, client) && client->add)
                        client->add(device);
 
-       device->index = __dev_new_index();
        down_write(&lists_rwsem);
        list_add_tail(&device->core_list, &device_list);
        up_write(&lists_rwsem);