[PATCH v3 net-next 0/7] ip_tunnel: Support per-netns device unregistration.
From: Kuniyuki Iwashima <kuniyu@google.com>
Date: 2026-09-12 23:00:46
Patch 1 - 3 are prep patches to unlink ip_tunnel device from
the hash table in ip_tunnel_dellink() only.
Patch 4 removes ip_tunnel_del() from ip_tunnel_uninit() to
ip_tunnel_dellink().
Patch 5 & 6 adds mutex to protect the per-netns hash table.
Patch 7 uses unregister_netdevice_queue_net() to support
cross-netns device unregistration.
Changes:
v3:
* Patch 7
* Check check_net(t->net) in ip_tunnel_ctl().
v2: https://lore.kernel.org/netdev/20260909234422.2416506-1-kuniyu@google.com/ (local)
* Patch 1
* Correct commit message; ip_tunnel_uninit() unlinks
DVMRP device, instead of ->dellink()
* Patch 7
* Check if (!itn->fb_tunnel_dev) in ip_tunnel_ctl().
v1: https://lore.kernel.org/netdev/20260907225846.3787676-1-kuniyu@google.com/ (local)
Kuniyuki Iwashima (7):
ipmr: Call ->dellink() to remove DVMRP tunnel device.
ip_tunnel: Set itn->fb_tunnel_dev to NULL in ip_tunnel_delete_net().
ip_tunnel: Don't pass rtnl_link_ops to ip_tunnel_delete_net().
ip_tunnel: Centralise ip_tunnel_del() to ip_tunnel_dellink().
ip_tunnel: Unify error paths in ip_tunnel_newlink() and
ip_tunnel_changelink().
ip_tunnel: Protect ip_tunnel_net.tunnels[] with mutex.
ip_tunnel: Support per-netns device unregistration.
include/net/ip_tunnels.h | 2 +-
net/ipv4/ip_gre.c | 6 +-
net/ipv4/ip_tunnel.c | 132 +++++++++++++++++++++++++++------------
net/ipv4/ip_vti.c | 2 +-
net/ipv4/ipip.c | 2 +-
net/ipv4/ipmr.c | 12 +++-
6 files changed, 108 insertions(+), 48 deletions(-)
--
2.55.0.1007.g17ff1f9808-goog