aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2015-03-18 17:05:36 -0400
committerDavid S. Miller <davem@davemloft.net>2015-03-18 22:00:35 -0400
commit77a6a471bc18763cb2e80a8cc92f4c04eae37d32 (patch)
tree47b4a53ce453ec42d096467ad1a3c2130f7cf362 /net/ipv6
parentd1e559d0b1b0d02f76a6bd5b768a99dc834ae926 (diff)
ipv6: get rid of __inet6_hash()
We can now use inet_hash() and __inet_hash() instead of private functions. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r--net/ipv6/inet6_hashtables.c38
-rw-r--r--net/ipv6/tcp_ipv6.c17
2 files changed, 3 insertions, 52 deletions
diff --git a/net/ipv6/inet6_hashtables.c b/net/ipv6/inet6_hashtables.c
index ed5787b20192..b86b429f5f81 100644
--- a/net/ipv6/inet6_hashtables.c
+++ b/net/ipv6/inet6_hashtables.c
@@ -42,42 +42,6 @@ u32 inet6_ehashfn(const struct net *net,
42 inet6_ehash_secret + net_hash_mix(net)); 42 inet6_ehash_secret + net_hash_mix(net));
43} 43}
44 44
45int __inet6_hash(struct sock *sk, struct inet_timewait_sock *tw)
46{
47 struct inet_hashinfo *hashinfo = sk->sk_prot->h.hashinfo;
48 int twrefcnt = 0;
49
50 WARN_ON(!sk_unhashed(sk));
51
52 if (sk->sk_state == TCP_LISTEN) {
53 struct inet_listen_hashbucket *ilb;
54
55 ilb = &hashinfo->listening_hash[inet_sk_listen_hashfn(sk)];
56 spin_lock(&ilb->lock);
57 __sk_nulls_add_node_rcu(sk, &ilb->head);
58 spin_unlock(&ilb->lock);
59 } else {
60 unsigned int hash;
61 struct hlist_nulls_head *list;
62 spinlock_t *lock;
63
64 sk->sk_hash = hash = sk_ehashfn(sk);
65 list = &inet_ehash_bucket(hashinfo, hash)->chain;
66 lock = inet_ehash_lockp(hashinfo, hash);
67 spin_lock(lock);
68 __sk_nulls_add_node_rcu(sk, list);
69 if (tw) {
70 WARN_ON(sk->sk_hash != tw->tw_hash);
71 twrefcnt = inet_twsk_unhash(tw);
72 }
73 spin_unlock(lock);
74 }
75
76 sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1);
77 return twrefcnt;
78}
79EXPORT_SYMBOL(__inet6_hash);
80
81/* 45/*
82 * Sockets in TCP_CLOSE state are _always_ taken out of the hash, so 46 * Sockets in TCP_CLOSE state are _always_ taken out of the hash, so
83 * we need not check it for TCP lookups anymore, thanks Alexey. -DaveM 47 * we need not check it for TCP lookups anymore, thanks Alexey. -DaveM
@@ -306,6 +270,6 @@ int inet6_hash_connect(struct inet_timewait_death_row *death_row,
306 struct sock *sk) 270 struct sock *sk)
307{ 271{
308 return __inet_hash_connect(death_row, sk, inet6_sk_port_offset(sk), 272 return __inet_hash_connect(death_row, sk, inet6_sk_port_offset(sk),
309 __inet6_check_established, __inet6_hash); 273 __inet6_check_established, __inet_hash_nolisten);
310} 274}
311EXPORT_SYMBOL_GPL(inet6_hash_connect); 275EXPORT_SYMBOL_GPL(inet6_hash_connect);
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index 5546df074583..720676d073d9 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -104,19 +104,6 @@ static void inet6_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb)
104 } 104 }
105} 105}
106 106
107static void tcp_v6_hash(struct sock *sk)
108{
109 if (sk->sk_state != TCP_CLOSE) {
110 if (inet_csk(sk)->icsk_af_ops == &ipv6_mapped) {
111 tcp_prot.hash(sk);
112 return;
113 }
114 local_bh_disable();
115 __inet6_hash(sk, NULL);
116 local_bh_enable();
117 }
118}
119
120static __u32 tcp_v6_init_sequence(const struct sk_buff *skb) 107static __u32 tcp_v6_init_sequence(const struct sk_buff *skb)
121{ 108{
122 return secure_tcpv6_sequence_number(ipv6_hdr(skb)->daddr.s6_addr32, 109 return secure_tcpv6_sequence_number(ipv6_hdr(skb)->daddr.s6_addr32,
@@ -1224,7 +1211,7 @@ static struct sock *tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb,
1224 tcp_done(newsk); 1211 tcp_done(newsk);
1225 goto out; 1212 goto out;
1226 } 1213 }
1227 __inet6_hash(newsk, NULL); 1214 __inet_hash(newsk, NULL);
1228 1215
1229 return newsk; 1216 return newsk;
1230 1217
@@ -1883,7 +1870,7 @@ struct proto tcpv6_prot = {
1883 .sendpage = tcp_sendpage, 1870 .sendpage = tcp_sendpage,
1884 .backlog_rcv = tcp_v6_do_rcv, 1871 .backlog_rcv = tcp_v6_do_rcv,
1885 .release_cb = tcp_release_cb, 1872 .release_cb = tcp_release_cb,
1886 .hash = tcp_v6_hash, 1873 .hash = inet_hash,
1887 .unhash = inet_unhash, 1874 .unhash = inet_unhash,
1888 .get_port = inet_csk_get_port, 1875 .get_port = inet_csk_get_port,
1889 .enter_memory_pressure = tcp_enter_memory_pressure, 1876 .enter_memory_pressure = tcp_enter_memory_pressure,