kernel-ark/net/ipv4/netfilter
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
..
arp_tables.c
arpt_mangle.c
arptable_filter.c
ip_conntrack_amanda.c
ip_conntrack_core.c [NETFILTER]: Do not be clever about SKB ownership in ip_ct_gather_frags(). 2005-05-19 12:36:33 -07:00
ip_conntrack_ftp.c
ip_conntrack_irc.c
ip_conntrack_proto_generic.c
ip_conntrack_proto_icmp.c
ip_conntrack_proto_sctp.c
ip_conntrack_proto_tcp.c
ip_conntrack_proto_udp.c
ip_conntrack_standalone.c
ip_conntrack_tftp.c
ip_nat_amanda.c
ip_nat_core.c
ip_nat_ftp.c
ip_nat_helper.c
ip_nat_irc.c
ip_nat_proto_icmp.c
ip_nat_proto_tcp.c
ip_nat_proto_udp.c
ip_nat_proto_unknown.c
ip_nat_rule.c
ip_nat_snmp_basic.c
ip_nat_standalone.c
ip_nat_tftp.c
ip_queue.c [NETFILTER]: Fix deadlock with ip_queue and tcp local input path. 2005-05-30 15:35:26 -07:00
ip_tables.c
ipt_addrtype.c
ipt_ah.c
ipt_CLASSIFY.c
ipt_CLUSTERIP.c
ipt_comment.c
ipt_connmark.c
ipt_CONNMARK.c
ipt_conntrack.c
ipt_dscp.c
ipt_DSCP.c
ipt_ecn.c
ipt_ECN.c
ipt_esp.c
ipt_hashlimit.c
ipt_helper.c
ipt_iprange.c
ipt_length.c
ipt_limit.c
ipt_LOG.c
ipt_mac.c
ipt_mark.c
ipt_MARK.c
ipt_MASQUERADE.c
ipt_multiport.c
ipt_NETMAP.c
ipt_NOTRACK.c
ipt_owner.c
ipt_physdev.c
ipt_pkttype.c
ipt_realm.c
ipt_recent.c
ipt_REDIRECT.c
ipt_REJECT.c
ipt_SAME.c
ipt_sctp.c
ipt_state.c
ipt_tcpmss.c
ipt_TCPMSS.c
ipt_tos.c
ipt_TOS.c
ipt_ttl.c
ipt_ULOG.c
iptable_filter.c
iptable_mangle.c
iptable_raw.c
Kconfig
Makefile