On Fri, Feb 21, 2025 at 12:07 PM Kuniyuki Iwashima kuniyu@amazon.com wrote:
From: Xiao Liang shaw.leon@gmail.com Date: Wed, 19 Feb 2025 20:50:33 +0800
Currently some IPv6 tunnel drivers set tnl->net to dev_net(dev) in ndo_init(), which is called in register_netdevice(). However, it lacks the context of link-netns when we enable cross-net tunnels at device registration time.
Let's move the init of tunnel link-netns before register_netdevice().
ip6_gre has already initialized netns, so just remove the redundant assignment.
Signed-off-by: Xiao Liang shaw.leon@gmail.com
Reviewed-by: Kuniyuki Iwashima kuniyu@amazon.com
left a small comment, but not a blocker.
@@ -1565,6 +1565,7 @@ static int ipip6_newlink(struct net_device *dev, int err;
nt = netdev_priv(dev);
nt->net = net;
This hunk is not necessary as we'll call ipip6_tunnel_locate(), but it's harmless and not worth reposting the whole series given we are alredy in v10. You can just post a follow-up patch after the series is applied.
Seems ipip6_tunnel_locate() only sets netns for newly created devices (for ioctl). ipip6_newlink() is calling it to check for conflicts, so we might need this line.
Thanks for your review!