netfilter: conntrack: replace notify chain by function pointer
authorPablo Neira Ayuso <pablo@netfilter.org>
Wed, 3 Jun 2009 08:32:06 +0000 (10:32 +0200)
committerpablo <pablo@1984.(none)>
Wed, 3 Jun 2009 08:32:06 +0000 (10:32 +0200)
commite34d5c1a4f9919a81b4ea4591d7383245f35cb8e
tree0a19bfe3e162b2b8de9b9414dcc2bef0a07e7133
parent17e6e4eac070607a35464ea7e2c5eceac32e5eca
netfilter: conntrack: replace notify chain by function pointer

This patch removes the notify chain infrastructure and replace it
by a simple function pointer. This issue has been mentioned in the
mailing list several times: the use of the notify chain adds
too much overhead for something that is only used by ctnetlink.

This patch also changes nfnetlink_send(). It seems that gfp_any()
returns GFP_KERNEL for user-context request, like those via
ctnetlink, inside the RCU read-side section which is not valid.
Using GFP_KERNEL is also evil since netlink may schedule(),
this leads to "scheduling while atomic" bug reports.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/linux/netfilter/nfnetlink.h
include/net/netfilter/nf_conntrack_ecache.h
net/netfilter/nf_conntrack_ecache.c
net/netfilter/nf_conntrack_netlink.c
net/netfilter/nfnetlink.c