diff options
author | Amerigo Wang <amwang@redhat.com> | 2012-11-11 16:52:34 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-11-14 18:49:50 -0500 |
commit | e086cadc08e259150b2ab8f7f4a16dbf9e3c2f22 (patch) | |
tree | 38ef29e21c125dcb9f8fd75749416e4839c84469 /net/ipv6/ip6_gre.c | |
parent | aa0010f880ab542da3ad0e72992f2dc518ac68a0 (diff) |
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>
Diffstat (limited to 'net/ipv6/ip6_gre.c')
-rw-r--r-- | net/ipv6/ip6_gre.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c index 672101db71ee..823fd64d0136 100644 --- a/net/ipv6/ip6_gre.c +++ b/net/ipv6/ip6_gre.c | |||
@@ -109,12 +109,6 @@ static u32 HASH_ADDR(const struct in6_addr *addr) | |||
109 | #define tunnels_r tunnels[2] | 109 | #define tunnels_r tunnels[2] |
110 | #define tunnels_l tunnels[1] | 110 | #define tunnels_l tunnels[1] |
111 | #define tunnels_wc tunnels[0] | 111 | #define tunnels_wc tunnels[0] |
112 | /* | ||
113 | * Locking : hash tables are protected by RCU and RTNL | ||
114 | */ | ||
115 | |||
116 | #define for_each_ip_tunnel_rcu(start) \ | ||
117 | for (t = rcu_dereference(start); t; t = rcu_dereference(t->next)) | ||
118 | 112 | ||
119 | static struct rtnl_link_stats64 *ip6gre_get_stats64(struct net_device *dev, | 113 | static struct rtnl_link_stats64 *ip6gre_get_stats64(struct net_device *dev, |
120 | struct rtnl_link_stats64 *tot) | 114 | struct rtnl_link_stats64 *tot) |
@@ -172,7 +166,7 @@ static struct ip6_tnl *ip6gre_tunnel_lookup(struct net_device *dev, | |||
172 | ARPHRD_ETHER : ARPHRD_IP6GRE; | 166 | ARPHRD_ETHER : ARPHRD_IP6GRE; |
173 | int score, cand_score = 4; | 167 | int score, cand_score = 4; |
174 | 168 | ||
175 | for_each_ip_tunnel_rcu(ign->tunnels_r_l[h0 ^ h1]) { | 169 | for_each_ip_tunnel_rcu(t, ign->tunnels_r_l[h0 ^ h1]) { |
176 | if (!ipv6_addr_equal(local, &t->parms.laddr) || | 170 | if (!ipv6_addr_equal(local, &t->parms.laddr) || |
177 | !ipv6_addr_equal(remote, &t->parms.raddr) || | 171 | !ipv6_addr_equal(remote, &t->parms.raddr) || |
178 | key != t->parms.i_key || | 172 | key != t->parms.i_key || |
@@ -197,7 +191,7 @@ static struct ip6_tnl *ip6gre_tunnel_lookup(struct net_device *dev, | |||
197 | } | 191 | } |
198 | } | 192 | } |
199 | 193 | ||
200 | for_each_ip_tunnel_rcu(ign->tunnels_r[h0 ^ h1]) { | 194 | for_each_ip_tunnel_rcu(t, ign->tunnels_r[h0 ^ h1]) { |
201 | if (!ipv6_addr_equal(remote, &t->parms.raddr) || | 195 | if (!ipv6_addr_equal(remote, &t->parms.raddr) || |
202 | key != t->parms.i_key || | 196 | key != t->parms.i_key || |
203 | !(t->dev->flags & IFF_UP)) | 197 | !(t->dev->flags & IFF_UP)) |
@@ -221,7 +215,7 @@ static struct ip6_tnl *ip6gre_tunnel_lookup(struct net_device *dev, | |||
221 | } | 215 | } |
222 | } | 216 | } |
223 | 217 | ||
224 | for_each_ip_tunnel_rcu(ign->tunnels_l[h1]) { | 218 | for_each_ip_tunnel_rcu(t, ign->tunnels_l[h1]) { |
225 | if ((!ipv6_addr_equal(local, &t->parms.laddr) && | 219 | if ((!ipv6_addr_equal(local, &t->parms.laddr) && |
226 | (!ipv6_addr_equal(local, &t->parms.raddr) || | 220 | (!ipv6_addr_equal(local, &t->parms.raddr) || |
227 | !ipv6_addr_is_multicast(local))) || | 221 | !ipv6_addr_is_multicast(local))) || |
@@ -247,7 +241,7 @@ static struct ip6_tnl *ip6gre_tunnel_lookup(struct net_device *dev, | |||
247 | } | 241 | } |
248 | } | 242 | } |
249 | 243 | ||
250 | for_each_ip_tunnel_rcu(ign->tunnels_wc[h1]) { | 244 | for_each_ip_tunnel_rcu(t, ign->tunnels_wc[h1]) { |
251 | if (t->parms.i_key != key || | 245 | if (t->parms.i_key != key || |
252 | !(t->dev->flags & IFF_UP)) | 246 | !(t->dev->flags & IFF_UP)) |
253 | continue; | 247 | continue; |