diff options
Diffstat (limited to 'net/ipv6/udp.c')
-rw-r--r-- | net/ipv6/udp.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index 2915e1dad726..f4c85b200051 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c | |||
@@ -100,12 +100,14 @@ static unsigned int udp6_portaddr_hash(struct net *net, | |||
100 | 100 | ||
101 | int udp_v6_get_port(struct sock *sk, unsigned short snum) | 101 | int udp_v6_get_port(struct sock *sk, unsigned short snum) |
102 | { | 102 | { |
103 | unsigned int hash2_nulladdr = | ||
104 | udp6_portaddr_hash(sock_net(sk), &in6addr_any, snum); | ||
105 | unsigned int hash2_partial = | ||
106 | udp6_portaddr_hash(sock_net(sk), &inet6_sk(sk)->rcv_saddr, 0); | ||
107 | |||
103 | /* precompute partial secondary hash */ | 108 | /* precompute partial secondary hash */ |
104 | udp_sk(sk)->udp_portaddr_hash = | 109 | udp_sk(sk)->udp_portaddr_hash = hash2_partial; |
105 | udp6_portaddr_hash(sock_net(sk), | 110 | return udp_lib_get_port(sk, snum, ipv6_rcv_saddr_equal, hash2_nulladdr); |
106 | &inet6_sk(sk)->rcv_saddr, | ||
107 | 0); | ||
108 | return udp_lib_get_port(sk, snum, ipv6_rcv_saddr_equal); | ||
109 | } | 111 | } |
110 | 112 | ||
111 | static inline int compute_score(struct sock *sk, struct net *net, | 113 | static inline int compute_score(struct sock *sk, struct net *net, |
@@ -181,8 +183,6 @@ static inline int compute_score2(struct sock *sk, struct net *net, | |||
181 | return score; | 183 | return score; |
182 | } | 184 | } |
183 | 185 | ||
184 | #define udp_portaddr_for_each_entry_rcu(__sk, node, list) \ | ||
185 | hlist_nulls_for_each_entry_rcu(__sk, node, list, __sk_common.skc_portaddr_node) | ||
186 | 186 | ||
187 | /* called with read_rcu_lock() */ | 187 | /* called with read_rcu_lock() */ |
188 | static struct sock *udp6_lib_lookup2(struct net *net, | 188 | static struct sock *udp6_lib_lookup2(struct net *net, |