diff options
author | Patrick McHardy <kaber@trash.net> | 2005-07-22 09:35:51 +0200 |
---|---|---|
committer | Chris Wright <chrisw@osdl.org> | 2005-08-05 00:04:20 -0700 |
commit | 1541b785b9c11b639ba5f60f4c5de5bff235f7d8 (patch) | |
tree | a1b9487fb739389779d611ef7537da783dac9475 | |
parent | 634823cdc51b1cacba504b29d6de9a25e1ee41af (diff) | |
download | linux-stable-1541b785b9c11b639ba5f60f4c5de5bff235f7d8.tar.gz linux-stable-1541b785b9c11b639ba5f60f4c5de5bff235f7d8.tar.bz2 linux-stable-1541b785b9c11b639ba5f60f4c5de5bff235f7d8.zip |
[PATCH] Wait until all references to ip_conntrack_untracked are dropped on unload
[NETFILTER]: Wait until all references to ip_conntrack_untracked are dropped on unload
Fixes a crash when unloading ip_conntrack.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Chris Wright <chrisw@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | net/ipv4/netfilter/ip_conntrack_core.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/ipv4/netfilter/ip_conntrack_core.c b/net/ipv4/netfilter/ip_conntrack_core.c index 09e824622977..d1ac6e8bc2c8 100644 --- a/net/ipv4/netfilter/ip_conntrack_core.c +++ b/net/ipv4/netfilter/ip_conntrack_core.c @@ -1124,6 +1124,9 @@ void ip_conntrack_cleanup(void) schedule(); goto i_see_dead_people; } + /* wait until all references to ip_conntrack_untracked are dropped */ + while (atomic_read(&ip_conntrack_untracked.ct_general.use) > 1) + schedule(); kmem_cache_destroy(ip_conntrack_cachep); kmem_cache_destroy(ip_conntrack_expect_cachep); |