diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2008-04-18 02:17:34 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-04-18 02:17:34 -0400 |
commit | e56d8b8a2ee5fb7f63ceba58e1c0fb3c844888a4 (patch) | |
tree | cc145929b5b5dd3e7d2ddeb75cba6c7813a5c206 | |
parent | 8b73a07c8ffaa70683022566080f4df3328ea18d (diff) |
[INET]: Drop the inet_inherit_port() call.
As I can see from the code, two places (tcp_v6_syn_recv_sock and
dccp_v6_request_recv_sock) that call this one already run with
BHs disabled, so it's safe to call __inet_inherit_port there.
Besides (in case I missed smth with code review) the calltrace
tcp_v6_syn_recv_sock
`- tcp_v4_syn_recv_sock
`- __inet_inherit_port
and the similar for DCCP are valid, but assumes BHs to be disabled.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | include/net/inet_hashtables.h | 7 | ||||
-rw-r--r-- | net/dccp/ipv6.c | 2 | ||||
-rw-r--r-- | net/ipv6/tcp_ipv6.c | 2 |
3 files changed, 2 insertions, 9 deletions
diff --git a/include/net/inet_hashtables.h b/include/net/inet_hashtables.h index 5525227c5e92..5ec91d88b517 100644 --- a/include/net/inet_hashtables.h +++ b/include/net/inet_hashtables.h | |||
@@ -235,13 +235,6 @@ static inline void __inet_inherit_port(struct sock *sk, struct sock *child) | |||
235 | spin_unlock(&head->lock); | 235 | spin_unlock(&head->lock); |
236 | } | 236 | } |
237 | 237 | ||
238 | static inline void inet_inherit_port(struct sock *sk, struct sock *child) | ||
239 | { | ||
240 | local_bh_disable(); | ||
241 | __inet_inherit_port(sk, child); | ||
242 | local_bh_enable(); | ||
243 | } | ||
244 | |||
245 | extern void inet_put_port(struct sock *sk); | 238 | extern void inet_put_port(struct sock *sk); |
246 | 239 | ||
247 | extern void inet_listen_wlock(struct inet_hashinfo *hashinfo); | 240 | extern void inet_listen_wlock(struct inet_hashinfo *hashinfo); |
diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c index f8371c7e5e80..9b1129bb7ece 100644 --- a/net/dccp/ipv6.c +++ b/net/dccp/ipv6.c | |||
@@ -625,7 +625,7 @@ static struct sock *dccp_v6_request_recv_sock(struct sock *sk, | |||
625 | newinet->daddr = newinet->saddr = newinet->rcv_saddr = LOOPBACK4_IPV6; | 625 | newinet->daddr = newinet->saddr = newinet->rcv_saddr = LOOPBACK4_IPV6; |
626 | 626 | ||
627 | __inet6_hash(newsk); | 627 | __inet6_hash(newsk); |
628 | inet_inherit_port(sk, newsk); | 628 | __inet_inherit_port(sk, newsk); |
629 | 629 | ||
630 | return newsk; | 630 | return newsk; |
631 | 631 | ||
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 231c4dddfb8c..715965f0fac0 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c | |||
@@ -1534,7 +1534,7 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb, | |||
1534 | #endif | 1534 | #endif |
1535 | 1535 | ||
1536 | __inet6_hash(newsk); | 1536 | __inet6_hash(newsk); |
1537 | inet_inherit_port(sk, newsk); | 1537 | __inet_inherit_port(sk, newsk); |
1538 | 1538 | ||
1539 | return newsk; | 1539 | return newsk; |
1540 | 1540 | ||