summaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorJesper Dangaard Brouer <hawk@comx.dk>2009-06-25 16:32:52 +0200
committerPatrick McHardy <kaber@trash.net>2009-06-25 16:32:52 +0200
commit308ff823ebd749a94d3b6ac26b95bc0eb114c39e (patch)
tree990a750303525a9f643a584a71aa8ac81c568d78 /include/net
parent28d0325ce6e0a52f53d8af687e6427fee59004d3 (diff)
downloadop-kernel-dev-308ff823ebd749a94d3b6ac26b95bc0eb114c39e.zip
op-kernel-dev-308ff823ebd749a94d3b6ac26b95bc0eb114c39e.tar.gz
nf_conntrack: Use rcu_barrier()
RCU barriers, rcu_barrier(), is inserted two places. In nf_conntrack_expect.c nf_conntrack_expect_fini() before the kmem_cache_destroy(). Firstly to make sure the callback to the nf_ct_expect_free_rcu() code is still around. Secondly because I'm unsure about the consequence of having in flight nf_ct_expect_free_rcu/kmem_cache_free() calls while doing a kmem_cache_destroy() slab destroy. And in nf_conntrack_extend.c nf_ct_extend_unregister(), inorder to wait for completion of callbacks to __nf_ct_ext_free_rcu(), which is invoked by __nf_ct_ext_add(). It might be more efficient to call rcu_barrier() in nf_conntrack_core.c nf_conntrack_cleanup_net(), but thats make it more difficult to read the code (as the callback code in located in nf_conntrack_extend.c). Signed-off-by: Jesper Dangaard Brouer <hawk@comx.dk> Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'include/net')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud