Re: [PATCH RFC net-next v4 09/12] vsock/loopback: add netns support

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

 



On Tue, Aug 05, 2025 at 02:49:17PM -0700, Bobby Eshleman wrote:
> From: Bobby Eshleman <bobbyeshleman@xxxxxxxx>
> 
> Add NS support to vsock loopback. Sockets in a global mode netns
> communicate with each other, regardless of namespace. Sockets in a local
> mode netns may only communicate with other sockets within the same
> namespace.
> 
> Signed-off-by: Bobby Eshleman <bobbyeshleman@xxxxxxxx>

...

> diff --git a/net/vmw_vsock/vsock_loopback.c b/net/vmw_vsock/vsock_loopback.c

...

> @@ -46,7 +57,7 @@ static int vsock_loopback_cancel_pkt(struct vsock_sock *vsk)
>  	return 0;
>  }
>  
> -static bool vsock_loopback_seqpacket_allow(u32 remote_cid);
> +static bool vsock_loopback_seqpacket_allow(struct vsock_sock *vsk, u32 remote_cid);

This change needs to be squashed into
PATCH 3/12 vsock: add netns to af_vsock core

To avoid build breakage.

Likewise with the other change to vsock_loopback_seqpacket_allow below.
And I think also for a number of other changes made by PATCH 3/12.

Please make sure that patches don't introduce transient build failures.
It breaks bisection.


On the topic of vsock_loopback_seqpacket_allow, also:

* Please line wrap this so that the code is 80 columns wide or less,
  as is still preferred for Networking code.

  Flagged by checkpatch.pl --max-line-length=80

* Can we move the definition of vsock_loopback_seqpacket_allow() here?
  The function itself is is trivial. And doing so would avoid a forward
  declaration.

>  static bool vsock_loopback_msgzerocopy_allow(void)
>  {
>  	return true;

...

> +int vsock_loopback_init_net(struct net *net)
> +{
> +	net->vsock.loopback = kmalloc(GFP_KERNEL, sizeof(struct vsock_loopback));
> +	if (!net->vsock.loopback)
> +		return -ENOMEM;
> +
> +	return vsock_loopback_init_vsock(net->vsock.loopback);
> +}
> +
> +void vsock_loopback_exit_net(struct net *net)
> +{
> +	vsock_loopback_deinit_vsock(net->vsock.loopback);
> +	kfree(net->vsock.loopback);
> +}

I think EXPORT_SYMBOL_GPL is needed for both vsock_loopback_exit_net and
vsock_loopback_init_net for the case where CONFIG_VSOCKETS=m

Also, in Kconfig VSOCKETS_LOOPBACK depends on VSOCKETS. But this code adds
a reverse dependency. As it stands it's possible to configure VSOCKETS
without VSOCKETS_LOOPBACK, which will not compile.

Perhaps stub implementations of vsock_loopback_init_net and
vsock_loopback_exit_net should be implemented in af_vsock.h if
VSOCKETS_LOOPBACK is not enabled?

...

-- 
pw-bot: changes-requested




[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux