RDMA/core: Allow port_groups to be used with namespaces
authorJason Gunthorpe <jgg@nvidia.com>
Fri, 11 Jun 2021 16:00:33 +0000 (19:00 +0300)
committerJason Gunthorpe <jgg@nvidia.com>
Wed, 16 Jun 2021 23:58:31 +0000 (20:58 -0300)
Now that the port_groups data is being destroyed and managed by the core
code this restriction is no longer needed. All the ib_port_attrs are
compatible with the core's sysfs lifecycle.

When the main device is destroyed and moved to another namespace the
driver's port sysfs can be created/destroyed as well due to it now being a
simple attribute list.

Link: https://lore.kernel.org/r/afd8b676eace2821692d44489ff71856277c48d1.1623427137.git.leonro@nvidia.com
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/core/device.c

index 2cbd779..92f224a 100644 (file)
@@ -1698,13 +1698,11 @@ int ib_device_set_netns_put(struct sk_buff *skb,
        }
 
        /*
-        * Currently supported only for those providers which support
-        * disassociation and don't do port specific sysfs init. Once a
-        * port_cleanup infrastructure is implemented, this limitation will be
-        * removed.
+        * All the ib_clients, including uverbs, are reset when the namespace is
+        * changed and this cannot be blocked waiting for userspace to do
+        * something, so disassociation is mandatory.
         */
-       if (!dev->ops.disassociate_ucontext || dev->ops.port_groups ||
-           ib_devices_shared_netns) {
+       if (!dev->ops.disassociate_ucontext || ib_devices_shared_netns) {
                ret = -EOPNOTSUPP;
                goto ns_err;
        }