: Drop the inet_inherit_port() call.
Subsystems (3)
PATCH 1/2 : 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.
--- include/net/inet_hashtables.h | 7 ------- net/dccp/ipv6.c | 2 +- net/ipv6/tcp_ipv6.c | 2 +- 3 files changed, 2 insertions(+), 9 deletions(-)
include/net/inet_hashtables.h +0 -7
@@ -235,13 +235,6 @@ static inline void __inet_inherit_port(struct sock *sk, struct sock *child)spin_unlock (&head->lock); } -static inline void inet_inherit_port (struct sock *sk,struct sock *child) -{ -local_bh_disable (); -__inet_inherit_port (sk, child); -local_bh_enable (); -} -extern void inet_put_port (struct sock *sk);extern void inet_listen_wlock (struct inet_hashinfo *hashinfo);
net/dccp/ipv6.c +1 -1
@@ -625,7 +625,7 @@ static struct sock *dccp_v6_request_recv_sock(struct sock *sk, newinet->daddr = newinet->saddr = newinet->rcv_saddr =LOOPBACK4_IPV6 ;__inet6_hash (newsk); -inet_inherit_port (sk, newsk); +__inet_inherit_port (sk, newsk);return newsk;
net/ipv6/tcp_ipv6.c +1 -1
@@ -1534,7 +1534,7 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb,#endif __inet6_hash (newsk); -inet_inherit_port (sk, newsk); +__inet_inherit_port (sk, newsk);return newsk;
Signature · 1 line
1.5.3.4
David Miller
maintainerFrom: Pavel Emelyanov <[email protected]>
Date: Thu, 17 Apr 2008 19:59:38 +0400
Quoted 11 lines
As I can see from the code, two places (
tcp_v6_syn_recv_sockanddccp_v6_request_recv_sock) that call this one already run with BHs disabled, so it's safe to call__inet_inherit_portthere.Besides (in case I missed smth with code review) the calltrace
tcp_v6_syn_recv_sock
`-tcp_v4_syn_recv_sock`- __inet_inherit_portand the similar for DCCP are valid, but assumes BHs to be disabled.
Signed-off-by Pavel Emelyanov <[email protected]>
I agree with you analysis, all of these sites have BH disabled, patch applied.