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