Commit 62dfa795 authored by Parav Pandit's avatar Parav Pandit Committed by Jason Gunthorpe

RDMA/core: Restrict sysfs entries view to init_net

This is a preparation patch to provide isolation of rdma device in a
network namespace.

As first step, make rdma device visible only in init net namespace.
Subsequent patch will enable rdma device visibility back in multiple net
namespaces using compat ib_core_device device/sysfs tree.

Given that the IB subsystem depends on net stack, it needs to be
initialized after netdev and since it support devices, it needs to be
initialized before the device subsystem; therefore, change initcall
sequence to fs_initcall, so that when ib_core is compiled in the kernel
image, the right init sequence is followed.
Signed-off-by: default avatarParav Pandit <parav@mellanox.com>
Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
parent cebe556b
...@@ -357,10 +357,17 @@ static int ib_device_uevent(struct device *device, ...@@ -357,10 +357,17 @@ static int ib_device_uevent(struct device *device,
return 0; return 0;
} }
static const void *net_namespace(struct device *d)
{
return &init_net;
}
static struct class ib_class = { static struct class ib_class = {
.name = "infiniband", .name = "infiniband",
.dev_release = ib_device_release, .dev_release = ib_device_release,
.dev_uevent = ib_device_uevent, .dev_uevent = ib_device_uevent,
.ns_type = &net_ns_type_operations,
.namespace = net_namespace,
}; };
static void rdma_init_coredev(struct ib_core_device *coredev, static void rdma_init_coredev(struct ib_core_device *coredev,
...@@ -1966,5 +1973,8 @@ static void __exit ib_core_cleanup(void) ...@@ -1966,5 +1973,8 @@ static void __exit ib_core_cleanup(void)
MODULE_ALIAS_RDMA_NETLINK(RDMA_NL_LS, 4); MODULE_ALIAS_RDMA_NETLINK(RDMA_NL_LS, 4);
subsys_initcall(ib_core_init); /* ib core relies on netdev stack to first register net_ns_type_operations
* ns kobject type before ib_core initialization.
*/
fs_initcall(ib_core_init);
module_exit(ib_core_cleanup); module_exit(ib_core_cleanup);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment