net: unify for_each_ip_tunnel_rcu()
The defitions of for_each_ip_tunnel_rcu() are same, so unify it. Also, don't hide the parameter 't'. Cc: David S. Miller <davem@davemloft.net> Signed-off-by: Cong Wang <amwang@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
aa0010f880
Коммит
e086cadc08
|
@ -6,6 +6,13 @@
|
|||
#include <uapi/linux/if_tunnel.h>
|
||||
#include <linux/u64_stats_sync.h>
|
||||
|
||||
/*
|
||||
* Locking : hash tables are protected by RCU and RTNL
|
||||
*/
|
||||
|
||||
#define for_each_ip_tunnel_rcu(pos, start) \
|
||||
for (pos = rcu_dereference(start); pos; pos = rcu_dereference(pos->next))
|
||||
|
||||
/* often modified stats are per cpu, other are shared (netdev->stats) */
|
||||
struct pcpu_tstats {
|
||||
u64 rx_packets;
|
||||
|
|
|
@ -164,12 +164,6 @@ struct ipgre_net {
|
|||
#define tunnels_r tunnels[2]
|
||||
#define tunnels_l tunnels[1]
|
||||
#define tunnels_wc tunnels[0]
|
||||
/*
|
||||
* Locking : hash tables are protected by RCU and RTNL
|
||||
*/
|
||||
|
||||
#define for_each_ip_tunnel_rcu(start) \
|
||||
for (t = rcu_dereference(start); t; t = rcu_dereference(t->next))
|
||||
|
||||
static struct rtnl_link_stats64 *ipgre_get_stats64(struct net_device *dev,
|
||||
struct rtnl_link_stats64 *tot)
|
||||
|
@ -241,7 +235,7 @@ static struct ip_tunnel *ipgre_tunnel_lookup(struct net_device *dev,
|
|||
ARPHRD_ETHER : ARPHRD_IPGRE;
|
||||
int score, cand_score = 4;
|
||||
|
||||
for_each_ip_tunnel_rcu(ign->tunnels_r_l[h0 ^ h1]) {
|
||||
for_each_ip_tunnel_rcu(t, ign->tunnels_r_l[h0 ^ h1]) {
|
||||
if (local != t->parms.iph.saddr ||
|
||||
remote != t->parms.iph.daddr ||
|
||||
!(t->dev->flags & IFF_UP))
|
||||
|
@ -268,7 +262,7 @@ static struct ip_tunnel *ipgre_tunnel_lookup(struct net_device *dev,
|
|||
}
|
||||
}
|
||||
|
||||
for_each_ip_tunnel_rcu(ign->tunnels_r[h0 ^ h1]) {
|
||||
for_each_ip_tunnel_rcu(t, ign->tunnels_r[h0 ^ h1]) {
|
||||
if (remote != t->parms.iph.daddr ||
|
||||
!(t->dev->flags & IFF_UP))
|
||||
continue;
|
||||
|
@ -294,7 +288,7 @@ static struct ip_tunnel *ipgre_tunnel_lookup(struct net_device *dev,
|
|||
}
|
||||
}
|
||||
|
||||
for_each_ip_tunnel_rcu(ign->tunnels_l[h1]) {
|
||||
for_each_ip_tunnel_rcu(t, ign->tunnels_l[h1]) {
|
||||
if ((local != t->parms.iph.saddr &&
|
||||
(local != t->parms.iph.daddr ||
|
||||
!ipv4_is_multicast(local))) ||
|
||||
|
@ -322,7 +316,7 @@ static struct ip_tunnel *ipgre_tunnel_lookup(struct net_device *dev,
|
|||
}
|
||||
}
|
||||
|
||||
for_each_ip_tunnel_rcu(ign->tunnels_wc[h1]) {
|
||||
for_each_ip_tunnel_rcu(t, ign->tunnels_wc[h1]) {
|
||||
if (t->parms.i_key != key ||
|
||||
!(t->dev->flags & IFF_UP))
|
||||
continue;
|
||||
|
|
|
@ -66,11 +66,6 @@ static void vti_tunnel_setup(struct net_device *dev);
|
|||
static void vti_dev_free(struct net_device *dev);
|
||||
static int vti_tunnel_bind_dev(struct net_device *dev);
|
||||
|
||||
/* Locking : hash tables are protected by RCU and RTNL */
|
||||
|
||||
#define for_each_ip_tunnel_rcu(start) \
|
||||
for (t = rcu_dereference(start); t; t = rcu_dereference(t->next))
|
||||
|
||||
#define VTI_XMIT(stats1, stats2) do { \
|
||||
int err; \
|
||||
int pkt_len = skb->len; \
|
||||
|
@ -133,19 +128,19 @@ static struct ip_tunnel *vti_tunnel_lookup(struct net *net,
|
|||
struct ip_tunnel *t;
|
||||
struct vti_net *ipn = net_generic(net, vti_net_id);
|
||||
|
||||
for_each_ip_tunnel_rcu(ipn->tunnels_r_l[h0 ^ h1])
|
||||
for_each_ip_tunnel_rcu(t, ipn->tunnels_r_l[h0 ^ h1])
|
||||
if (local == t->parms.iph.saddr &&
|
||||
remote == t->parms.iph.daddr && (t->dev->flags&IFF_UP))
|
||||
return t;
|
||||
for_each_ip_tunnel_rcu(ipn->tunnels_r[h0])
|
||||
for_each_ip_tunnel_rcu(t, ipn->tunnels_r[h0])
|
||||
if (remote == t->parms.iph.daddr && (t->dev->flags&IFF_UP))
|
||||
return t;
|
||||
|
||||
for_each_ip_tunnel_rcu(ipn->tunnels_l[h1])
|
||||
for_each_ip_tunnel_rcu(t, ipn->tunnels_l[h1])
|
||||
if (local == t->parms.iph.saddr && (t->dev->flags&IFF_UP))
|
||||
return t;
|
||||
|
||||
for_each_ip_tunnel_rcu(ipn->tunnels_wc[0])
|
||||
for_each_ip_tunnel_rcu(t, ipn->tunnels_wc[0])
|
||||
if (t && (t->dev->flags&IFF_UP))
|
||||
return t;
|
||||
return NULL;
|
||||
|
|
|
@ -140,13 +140,6 @@ static void ipip_tunnel_setup(struct net_device *dev);
|
|||
static void ipip_dev_free(struct net_device *dev);
|
||||
static struct rtnl_link_ops ipip_link_ops __read_mostly;
|
||||
|
||||
/*
|
||||
* Locking : hash tables are protected by RCU and RTNL
|
||||
*/
|
||||
|
||||
#define for_each_ip_tunnel_rcu(start) \
|
||||
for (t = rcu_dereference(start); t; t = rcu_dereference(t->next))
|
||||
|
||||
static struct rtnl_link_stats64 *ipip_get_stats64(struct net_device *dev,
|
||||
struct rtnl_link_stats64 *tot)
|
||||
{
|
||||
|
@ -189,16 +182,16 @@ static struct ip_tunnel *ipip_tunnel_lookup(struct net *net,
|
|||
struct ip_tunnel *t;
|
||||
struct ipip_net *ipn = net_generic(net, ipip_net_id);
|
||||
|
||||
for_each_ip_tunnel_rcu(ipn->tunnels_r_l[h0 ^ h1])
|
||||
for_each_ip_tunnel_rcu(t, ipn->tunnels_r_l[h0 ^ h1])
|
||||
if (local == t->parms.iph.saddr &&
|
||||
remote == t->parms.iph.daddr && (t->dev->flags&IFF_UP))
|
||||
return t;
|
||||
|
||||
for_each_ip_tunnel_rcu(ipn->tunnels_r[h0])
|
||||
for_each_ip_tunnel_rcu(t, ipn->tunnels_r[h0])
|
||||
if (remote == t->parms.iph.daddr && (t->dev->flags&IFF_UP))
|
||||
return t;
|
||||
|
||||
for_each_ip_tunnel_rcu(ipn->tunnels_l[h1])
|
||||
for_each_ip_tunnel_rcu(t, ipn->tunnels_l[h1])
|
||||
if (local == t->parms.iph.saddr && (t->dev->flags&IFF_UP))
|
||||
return t;
|
||||
|
||||
|
|
|
@ -109,12 +109,6 @@ static u32 HASH_ADDR(const struct in6_addr *addr)
|
|||
#define tunnels_r tunnels[2]
|
||||
#define tunnels_l tunnels[1]
|
||||
#define tunnels_wc tunnels[0]
|
||||
/*
|
||||
* Locking : hash tables are protected by RCU and RTNL
|
||||
*/
|
||||
|
||||
#define for_each_ip_tunnel_rcu(start) \
|
||||
for (t = rcu_dereference(start); t; t = rcu_dereference(t->next))
|
||||
|
||||
static struct rtnl_link_stats64 *ip6gre_get_stats64(struct net_device *dev,
|
||||
struct rtnl_link_stats64 *tot)
|
||||
|
@ -172,7 +166,7 @@ static struct ip6_tnl *ip6gre_tunnel_lookup(struct net_device *dev,
|
|||
ARPHRD_ETHER : ARPHRD_IP6GRE;
|
||||
int score, cand_score = 4;
|
||||
|
||||
for_each_ip_tunnel_rcu(ign->tunnels_r_l[h0 ^ h1]) {
|
||||
for_each_ip_tunnel_rcu(t, ign->tunnels_r_l[h0 ^ h1]) {
|
||||
if (!ipv6_addr_equal(local, &t->parms.laddr) ||
|
||||
!ipv6_addr_equal(remote, &t->parms.raddr) ||
|
||||
key != t->parms.i_key ||
|
||||
|
@ -197,7 +191,7 @@ static struct ip6_tnl *ip6gre_tunnel_lookup(struct net_device *dev,
|
|||
}
|
||||
}
|
||||
|
||||
for_each_ip_tunnel_rcu(ign->tunnels_r[h0 ^ h1]) {
|
||||
for_each_ip_tunnel_rcu(t, ign->tunnels_r[h0 ^ h1]) {
|
||||
if (!ipv6_addr_equal(remote, &t->parms.raddr) ||
|
||||
key != t->parms.i_key ||
|
||||
!(t->dev->flags & IFF_UP))
|
||||
|
@ -221,7 +215,7 @@ static struct ip6_tnl *ip6gre_tunnel_lookup(struct net_device *dev,
|
|||
}
|
||||
}
|
||||
|
||||
for_each_ip_tunnel_rcu(ign->tunnels_l[h1]) {
|
||||
for_each_ip_tunnel_rcu(t, ign->tunnels_l[h1]) {
|
||||
if ((!ipv6_addr_equal(local, &t->parms.laddr) &&
|
||||
(!ipv6_addr_equal(local, &t->parms.raddr) ||
|
||||
!ipv6_addr_is_multicast(local))) ||
|
||||
|
@ -247,7 +241,7 @@ static struct ip6_tnl *ip6gre_tunnel_lookup(struct net_device *dev,
|
|||
}
|
||||
}
|
||||
|
||||
for_each_ip_tunnel_rcu(ign->tunnels_wc[h1]) {
|
||||
for_each_ip_tunnel_rcu(t, ign->tunnels_wc[h1]) {
|
||||
if (t->parms.i_key != key ||
|
||||
!(t->dev->flags & IFF_UP))
|
||||
continue;
|
||||
|
|
|
@ -81,13 +81,6 @@ struct sit_net {
|
|||
struct net_device *fb_tunnel_dev;
|
||||
};
|
||||
|
||||
/*
|
||||
* Locking : hash tables are protected by RCU and RTNL
|
||||
*/
|
||||
|
||||
#define for_each_ip_tunnel_rcu(start) \
|
||||
for (t = rcu_dereference(start); t; t = rcu_dereference(t->next))
|
||||
|
||||
static struct rtnl_link_stats64 *ipip6_get_stats64(struct net_device *dev,
|
||||
struct rtnl_link_stats64 *tot)
|
||||
{
|
||||
|
@ -133,20 +126,20 @@ static struct ip_tunnel *ipip6_tunnel_lookup(struct net *net,
|
|||
struct ip_tunnel *t;
|
||||
struct sit_net *sitn = net_generic(net, sit_net_id);
|
||||
|
||||
for_each_ip_tunnel_rcu(sitn->tunnels_r_l[h0 ^ h1]) {
|
||||
for_each_ip_tunnel_rcu(t, sitn->tunnels_r_l[h0 ^ h1]) {
|
||||
if (local == t->parms.iph.saddr &&
|
||||
remote == t->parms.iph.daddr &&
|
||||
(!dev || !t->parms.link || dev->iflink == t->parms.link) &&
|
||||
(t->dev->flags & IFF_UP))
|
||||
return t;
|
||||
}
|
||||
for_each_ip_tunnel_rcu(sitn->tunnels_r[h0]) {
|
||||
for_each_ip_tunnel_rcu(t, sitn->tunnels_r[h0]) {
|
||||
if (remote == t->parms.iph.daddr &&
|
||||
(!dev || !t->parms.link || dev->iflink == t->parms.link) &&
|
||||
(t->dev->flags & IFF_UP))
|
||||
return t;
|
||||
}
|
||||
for_each_ip_tunnel_rcu(sitn->tunnels_l[h1]) {
|
||||
for_each_ip_tunnel_rcu(t, sitn->tunnels_l[h1]) {
|
||||
if (local == t->parms.iph.saddr &&
|
||||
(!dev || !t->parms.link || dev->iflink == t->parms.link) &&
|
||||
(t->dev->flags & IFF_UP))
|
||||
|
|
Загрузка…
Ссылка в новой задаче