RDMA/core: Add module param to disable device sharing among net ns
authorParav Pandit <parav@mellanox.com>
Tue, 26 Feb 2019 12:01:45 +0000 (14:01 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Thu, 28 Mar 2019 17:52:02 +0000 (14:52 -0300)
Add module parameter to change a sharing mode of ib_core early in the
boot process. This parameter helps to those systems where modern up
to date rdma tool (iproute2) package may not be available during
kernel upgrade cycle.

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

index 0735f8b..ebc0b0e 100644 (file)
@@ -127,6 +127,10 @@ static DEFINE_XARRAY_FLAGS(rdma_nets, XA_FLAGS_ALLOC);
  */
 static DECLARE_RWSEM(rdma_nets_rwsem);
 
+static bool ib_devices_shared_netns = true;
+module_param_named(netns_mode, ib_devices_shared_netns, bool, 0444);
+MODULE_PARM_DESC(netns_mode,
+                "Share device among net namespaces; default=1 (shared)");
 /*
  * xarray has this behavior where it won't iterate over NULL values stored in
  * allocated arrays.  So we need our own iterator to see all values stored in
@@ -736,6 +740,9 @@ static int add_one_compat_dev(struct ib_device *device,
        struct ib_core_device *cdev;
        int ret;
 
+       if (!ib_devices_shared_netns)
+               return 0;
+
        /*
         * Create and add compat device in all namespaces other than where it
         * is currently bound to.