Re: [PATCH rdma-next 5/9] RDMA/core: Restrict sysfs entries view to init_net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 21, 2018 at 10:44:57AM +0200, Leon Romanovsky wrote:
> From: Parav Pandit <parav@xxxxxxxxxxxx>
> 
> 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 ib subsystem depends on net stack, it needs to be
> initialized after netdev stack and since it support devices, it needs
> to be initialized before device subsystem; therefore, change initcall
> sequence to fs_initcall, so that when ib_core is compiled in kernel
> image, right init sequence is followed.
> 
> Signed-off-by: Parav Pandit <parav@xxxxxxxxxxxx>
> Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx>
>  drivers/infiniband/core/device.c | 18 ++++++++++++++----
>  1 file changed, 14 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c
> index 1dc8a5726d33..d70f2afb7e41 100644
> +++ b/drivers/infiniband/core/device.c
> @@ -265,10 +265,17 @@ static int ib_device_uevent(struct device *device,
>  	return 0;
>  }
>  
> +static const void *net_namespace(struct device *d)
> +{
> +	return &init_net;
> +}
> +
>  static struct class ib_class = {
> -	.name    = "infiniband",
> -	.dev_release = ib_device_release,
> -	.dev_uevent = ib_device_uevent,
> +	.name		= "infiniband",
> +	.dev_release	= ib_device_release,
> +	.dev_uevent	= ib_device_uevent,
> +	.ns_type	= &net_ns_type_operations,
> +	.namespace	= net_namespace,
>  };

and lets not reformat code just to add horizonal whitespace please.

>  static void rdma_init_coredev(struct ib_core_device *coredev,
> @@ -1350,5 +1357,8 @@ static void __exit ib_core_cleanup(void)
>  
>  MODULE_ALIAS_RDMA_NETLINK(RDMA_NL_LS, 4);
>  
> -subsys_initcall(ib_core_init);
> +/* ib core relies on netdev stack to first registers net_ns_type_operations
> + * ns kobject type before ib_core initialization.

'first register'

> +fs_initcall(ib_core_init);

Really? So very strange.

Jason



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux