Преглед изворни кода

RDMA/core: Assign device ifindex before publishing the device

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>
Parav Pandit пре 7 година
родитељ
комит
273993509f
1 измењених фајлова са 2 додато и 1 уклоњено
  1. 2 1
      drivers/infiniband/core/device.c

+ 2 - 1
drivers/infiniband/core/device.c

@@ -525,6 +525,8 @@ int ib_register_device(struct ib_device *device,
 		goto port_cleanup;
 		goto port_cleanup;
 	}
 	}
 
 
+	device->index = __dev_new_index();
+
 	ret = ib_device_register_rdmacg(device);
 	ret = ib_device_register_rdmacg(device);
 	if (ret) {
 	if (ret) {
 		pr_warn("Couldn't register device with rdma cgroup\n");
 		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)
 		if (!add_client_context(device, client) && client->add)
 			client->add(device);
 			client->add(device);
 
 
-	device->index = __dev_new_index();
 	down_write(&lists_rwsem);
 	down_write(&lists_rwsem);
 	list_add_tail(&device->core_list, &device_list);
 	list_add_tail(&device->core_list, &device_list);
 	up_write(&lists_rwsem);
 	up_write(&lists_rwsem);