OSDN Git Service

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 e115506..5a680a8 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);