linux/net/ipv4
Harald Welte 9bb7bc942d [NETFILTER]: Fix deadlock with ip_queue and tcp local input path.
When we have ip_queue being used from LOCAL_IN, then we end up with a
situation where the verdicts coming back from userspace traverse the TCP
input path from syscall context.  While this seems to work most of the
time, there's an ugly deadlock:

syscall context is interrupted by the timer interrupt.  When the timer
interrupt leaves, the timer softirq get's scheduled and calls
tcp_delack_timer() and alike.  They themselves do bh_lock_sock(sk),
which is already held from somewhere else -> boom.

I've now tested the suggested solution by Patrick McHardy and Herbert Xu to
simply use local_bh_{en,dis}able().

Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2005-05-30 15:35:26 -07:00
..
ipvs [IP_VS]: Remove extra __ip_vs_conn_put() for incoming ICMP. 2005-05-19 12:29:59 -07:00
netfilter [NETFILTER]: Fix deadlock with ip_queue and tcp local input path. 2005-05-30 15:35:26 -07:00
Kconfig Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
af_inet.c [PATCH] update Ross Biro bouncing email address 2005-05-05 16:36:49 -07:00
ah4.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
arp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
datagram.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
devinet.c [IPV4]: Primary and secondary addresses 2005-05-29 20:23:46 -07:00
esp4.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fib_frontend.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fib_hash.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fib_lookup.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fib_rules.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fib_semantics.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
icmp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
igmp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
inetpeer.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip_forward.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip_fragment.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip_gre.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip_input.c [PATCH] update Ross Biro bouncing email address 2005-05-05 16:36:49 -07:00
ip_options.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip_output.c [IPV4/IPV6] Ensure all frag_list members have NULL sk 2005-05-18 22:52:33 -07:00
ip_sockglue.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipcomp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipconfig.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipip.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipmr.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
multipath.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
multipath_drr.c [IPV4]: Kill MULTIPATHHOLDROUTE flag. 2005-05-29 20:26:44 -07:00
multipath_random.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
multipath_rr.c [IPV4]: Kill MULTIPATHHOLDROUTE flag. 2005-05-29 20:26:44 -07:00
multipath_wrandom.c [IPV4]: multipath_wrandom.c GPF fixes 2005-05-05 14:30:15 -07:00
proc.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
protocol.c [PATCH] update Ross Biro bouncing email address 2005-05-05 16:36:49 -07:00
raw.c [PATCH] update Ross Biro bouncing email address 2005-05-05 16:36:49 -07:00
route.c [PATCH] update Ross Biro bouncing email address 2005-05-05 16:36:49 -07:00
syncookies.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sysctl_net_ipv4.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tcp.c [PATCH] update Ross Biro bouncing email address 2005-05-05 16:36:49 -07:00
tcp_diag.c [NETLINK]: Synchronous message processing. 2005-05-03 14:55:09 -07:00
tcp_input.c [TCP]: Fix stretch ACK performance killer when doing ucopy. 2005-05-23 12:03:06 -07:00
tcp_ipv4.c [TCP]: Optimize check in port-allocation code. 2005-05-03 14:36:08 -07:00
tcp_minisocks.c [PATCH] update Ross Biro bouncing email address 2005-05-05 16:36:49 -07:00
tcp_output.c [PATCH] update Ross Biro bouncing email address 2005-05-05 16:36:49 -07:00
tcp_timer.c [PATCH] update Ross Biro bouncing email address 2005-05-05 16:36:49 -07:00
udp.c [PATCH] update Ross Biro bouncing email address 2005-05-05 16:36:49 -07:00
utils.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xfrm4_input.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xfrm4_output.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xfrm4_policy.c [IPSEC]: Store idev entries 2005-05-03 16:27:10 -07:00
xfrm4_state.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xfrm4_tunnel.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00