Thread (26 messages) 26 messages, 3 authors, 2025-02-14

Re: [PATCH net-next v9 06/11] net: ipv6: Use link netns in newlink() of rtnl_link_ops

From: Xiao Liang <hidden>
Date: 2025-02-13 09:56:11
Also in: batman, bpf, bridge, linux-can, linux-kselftest, linux-rdma, linux-wireless, lkml

On Thu, Feb 13, 2025 at 4:37 PM Xiao Liang [off-list ref] wrote:
On Thu, Feb 13, 2025 at 3:05 PM Kuniyuki Iwashima [off-list ref] wrote:
quoted
[...]
quoted
quoted
diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c
index 863852abe8ea..108600dc716f 100644
--- a/net/ipv6/ip6_gre.c
+++ b/net/ipv6/ip6_gre.c
@@ -1498,7 +1498,8 @@ static int ip6gre_tunnel_init_common(struct net_device *dev)
      tunnel = netdev_priv(dev);

      tunnel->dev = dev;
-     tunnel->net = dev_net(dev);
+     if (!tunnel->net)
+             tunnel->net = dev_net(dev);
Same question as patch 5 for here and other parts.
Do we need this check and assignment ?

ip6gre_newlink_common
-> nt->net = dev_net(dev)
-> register_netdevice
  -> ndo_init / ip6gre_tunnel_init()
    -> ip6gre_tunnel_init_common
      -> tunnel->net = dev_net(dev)
Will remove this line.
However, fb tunnel of ip6_tunnel, ip6_vti and sit can have
tunnel->net == NULL here. Take ip6_tunnel for example:

ip6_tnl_init_net()
    -> ip6_fb_tnl_dev_init()
    -> register_netdev()
        -> register_netdevice()
            -> ip6_tnl_dev_init()

This code path (including ip6_fb_tnl_dev_init()) doesn't set
tunnel->net. But for ip6_gre, ip6gre_fb_tunnel_init() does.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help