On Tue, Aug 05, 2025 at 02:49:17PM -0700, Bobby Eshleman wrote:
> From: Bobby Eshleman <bobbyeshle...@meta.com>
> 
> 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 <bobbyeshle...@meta.com>

...

> 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

Reply via email to