linux-stable-rt/net/ipv4
Eric Dumazet 918eb39962 net: add missing bh_unlock_sock() calls
Simon Kirby reported lockdep warnings and following messages :

[104661.897577] huh, entered softirq 3 NET_RX ffffffff81613740
preempt_count 00000101, exited with 00000102?

[104661.923653] huh, entered softirq 3 NET_RX ffffffff81613740
preempt_count 00000101, exited with 00000102?

Problem comes from commit 0e734419
(ipv4: Use inet_csk_route_child_sock() in DCCP and TCP.)

If inet_csk_route_child_sock() returns NULL, we should release socket
lock before freeing it.

Another lock imbalance exists if __inet_inherit_port() returns an error
since commit 093d282321 ( tproxy: fix hash locking issue when using
port redirection in __inet_inherit_port()) a backport is also needed for
>= 2.6.37 kernels.

Reported-by: Simon Kirby <sim@hostway.ca>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Tested-by: Eric Dumazet <eric.dumazet@gmail.com>
CC: Balazs Scheidler <bazsi@balabit.hu>
CC: KOVACS Krisztian <hidden@balabit.hu>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Simon Kirby <sim@hostway.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>
2011-11-03 18:06:18 -04:00
..
netfilter netfilter: Remove unnecessary OOM logging messages 2011-11-01 09:19:49 +01:00
Kconfig
Makefile
af_inet.c ipv4: compat_ioctl is local to af_inet.c, make it static 2011-10-19 19:24:39 -04:00
ah4.c
arp.c
cipso_ipv4.c cipso: remove an unneeded NULL check in cipso_v4_doi_add() 2011-10-11 18:43:53 -04:00
datagram.c
devinet.c rcu: convert uses of rcu_assign_pointer(x, NULL) to RCU_INIT_POINTER 2011-08-02 04:29:23 -07:00
esp4.c
fib_frontend.c
fib_lookup.h
fib_rules.c
fib_semantics.c ipv4: Fix fib_info->fib_metrics leak 2011-09-16 17:42:26 -04:00
fib_trie.c rcu: convert uses of rcu_assign_pointer(x, NULL) to RCU_INIT_POINTER 2011-08-02 04:29:23 -07:00
gre.c rcu: convert uses of rcu_assign_pointer(x, NULL) to RCU_INIT_POINTER 2011-08-02 04:29:23 -07:00
icmp.c net: more accurate skb truesize 2011-10-13 16:05:07 -04:00
igmp.c Merge branch 'master' of github.com:davem330/net 2011-09-22 03:23:13 -04:00
inet_connection_sock.c
inet_diag.c net-netlink: Add a new attribute to expose TOS values via netlink 2011-10-12 19:09:18 -04:00
inet_fragment.c
inet_hashtables.c net: Compute protocol sequence numbers and fragment IDs using MD5. 2011-08-06 18:33:19 -07:00
inet_lro.c net: add skb frag size accessors 2011-10-19 03:10:46 -04:00
inet_timewait_sock.c ipv4: tcp: fix TOS value in ACK messages sent from TIME_WAIT 2011-10-24 03:06:21 -04:00
inetpeer.c net: Compute protocol sequence numbers and fragment IDs using MD5. 2011-08-06 18:33:19 -07:00
ip_forward.c
ip_fragment.c net: add skb frag size accessors 2011-10-19 03:10:46 -04:00
ip_gre.c ip_gre: dont increase dev->needed_headroom on a live device 2011-10-20 16:20:30 -04:00
ip_input.c
ip_options.c
ip_output.c ipv4: tcp: fix TOS value in ACK messages sent from TIME_WAIT 2011-10-24 03:06:21 -04:00
ip_sockglue.c net: use INET_ECN_MASK instead of hardcoded 3 2011-10-22 00:07:47 -04:00
ipcomp.c
ipconfig.c
ipip.c rcu: convert uses of rcu_assign_pointer(x, NULL) to RCU_INIT_POINTER 2011-08-02 04:29:23 -07:00
ipmr.c net: cleanup some rcu_dereference_raw 2011-08-12 02:55:28 -07:00
netfilter.c netfilter: TCP and raw fix for ip_route_me_harder 2011-08-07 22:52:32 -07:00
ping.c
proc.c tcp: Change possible SYN flooding messages 2011-09-15 14:49:43 -04:00
protocol.c
raw.c ipv4: route non-local sources for raw socket 2011-08-07 22:52:32 -07:00
route.c ipv4: avoid useless call of the function check_peer_pmtu 2011-10-24 18:30:07 -04:00
syncookies.c tcp: add const qualifiers where possible 2011-10-21 05:22:42 -04:00
sysctl_net_ipv4.c
tcp.c TCP: remove TCP_DEBUG 2011-10-24 17:36:08 -04:00
tcp_bic.c
tcp_cong.c
tcp_cubic.c
tcp_diag.c
tcp_highspeed.c
tcp_htcp.c
tcp_hybla.c
tcp_illinois.c
tcp_input.c tcp: add const qualifiers where possible 2011-10-21 05:22:42 -04:00
tcp_ipv4.c net: add missing bh_unlock_sock() calls 2011-11-03 18:06:18 -04:00
tcp_lp.c
tcp_minisocks.c ipv6: tcp: fix TCLASS value in ACK messages sent from TIME_WAIT 2011-10-27 00:44:35 -04:00
tcp_output.c tcp: add const qualifiers where possible 2011-10-21 05:22:42 -04:00
tcp_probe.c
tcp_scalable.c
tcp_timer.c TCP: remove TCP_DEBUG 2011-10-24 17:36:08 -04:00
tcp_vegas.c
tcp_vegas.h
tcp_veno.c
tcp_westwood.c
tcp_yeah.c
tunnel4.c
udp.c udp: fix a race in encap_rcv handling 2011-11-02 00:51:27 -04:00
udp_impl.h
udplite.c net: make the tcp and udp file_operations for the /proc stuff const 2011-11-01 17:56:14 -04:00
xfrm4_input.c
xfrm4_mode_beet.c
xfrm4_mode_transport.c
xfrm4_mode_tunnel.c
xfrm4_output.c
xfrm4_policy.c ipv4: fix ipsec forward performance regression 2011-10-24 03:01:22 -04:00
xfrm4_state.c
xfrm4_tunnel.c