]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ip6_tunnel: use generic for_each_ip_tunnel_rcu macro
authorYue Haibing <yuehaibing@huawei.com>
Fri, 3 Apr 2026 08:46:19 +0000 (16:46 +0800)
committerJakub Kicinski <kuba@kernel.org>
Tue, 7 Apr 2026 01:41:03 +0000 (18:41 -0700)
Remove the locally defined for_each_ip6_tunnel_rcu macro and use
the generic for_each_ip_tunnel_rcu from linux/if_tunnel.h instead.

This eliminates code duplication and ensures consistency across
the kernel tunnel implementations.

Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20260403084619.4107978-1-yuehaibing@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv6/ip6_tunnel.c

index 0b53488a922900270903cc55840014436bd946f9..46bc06506470b2d742705c6096110c91b8e8dbb7 100644 (file)
@@ -96,9 +96,6 @@ static inline int ip6_tnl_mpls_supported(void)
        return IS_ENABLED(CONFIG_MPLS);
 }
 
-#define for_each_ip6_tunnel_rcu(start) \
-       for (t = rcu_dereference(start); t; t = rcu_dereference(t->next))
-
 /**
  * ip6_tnl_lookup - fetch tunnel matching the end-point addresses
  *   @net: network namespace
@@ -121,7 +118,7 @@ ip6_tnl_lookup(struct net *net, int link,
        struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id);
        struct in6_addr any;
 
-       for_each_ip6_tunnel_rcu(ip6n->tnls_r_l[hash]) {
+       for_each_ip_tunnel_rcu(t, ip6n->tnls_r_l[hash]) {
                if (!ipv6_addr_equal(local, &t->parms.laddr) ||
                    !ipv6_addr_equal(remote, &t->parms.raddr) ||
                    !(t->dev->flags & IFF_UP))
@@ -135,7 +132,7 @@ ip6_tnl_lookup(struct net *net, int link,
 
        memset(&any, 0, sizeof(any));
        hash = HASH(&any, local);
-       for_each_ip6_tunnel_rcu(ip6n->tnls_r_l[hash]) {
+       for_each_ip_tunnel_rcu(t, ip6n->tnls_r_l[hash]) {
                if (!ipv6_addr_equal(local, &t->parms.laddr) ||
                    !ipv6_addr_any(&t->parms.raddr) ||
                    !(t->dev->flags & IFF_UP))
@@ -148,7 +145,7 @@ ip6_tnl_lookup(struct net *net, int link,
        }
 
        hash = HASH(remote, &any);
-       for_each_ip6_tunnel_rcu(ip6n->tnls_r_l[hash]) {
+       for_each_ip_tunnel_rcu(t, ip6n->tnls_r_l[hash]) {
                if (!ipv6_addr_equal(remote, &t->parms.raddr) ||
                    !ipv6_addr_any(&t->parms.laddr) ||
                    !(t->dev->flags & IFF_UP))