On Fri, Feb 21, 2025 at 12:07 PM Kuniyuki Iwashima <kuniyu(a)amazon.com> wrote:
From: Xiao Liang <shaw.leon(a)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(a)gmail.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu(a)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!