]> git.hungrycats.org Git - linux/commit
[NETFILTER]: Fix deadlock condition in conntrack/nat-helpers
authorPatrick McHardy <kaber@trash.net>
Thu, 2 Sep 2004 17:08:40 +0000 (10:08 -0700)
committerPatrick McHardy <kaber@trash.net>
Thu, 2 Sep 2004 17:08:40 +0000 (10:08 -0700)
commit7cd101a51b34e2cfe1f93543937a54f0dadc2cc2
treea7c2b336136cafa2942b18d34de5133316c342e6
parent3c9df440395f71ab8d44aa2ff2bd1f590f052a48
[NETFILTER]: Fix deadlock condition in conntrack/nat-helpers

There is a possible deadlock condition with conntrack/nat-helpers:

CPU1:
conntrack-helper:help: lock(private_lock)
ip_conntrack_expect_related: write_lock(ip_conntrack_lock)

CPU2:
nat-core:do_bindings: read_lock(ip_conntrack_lock)
nat-helper:help: lock(private_lock)

The lock in the nat-helper is unneccessary because the expectation
is never changed and is protected by ip_conntrack_lock.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netfilter_ipv4/ip_conntrack_ftp.h
include/linux/netfilter_ipv4/ip_conntrack_irc.h
net/ipv4/netfilter/ip_conntrack_ftp.c
net/ipv4/netfilter/ip_conntrack_irc.c
net/ipv4/netfilter/ip_nat_ftp.c
net/ipv4/netfilter/ip_nat_irc.c