1. 25 Jun, 2009 1 commit
    • Jesper Dangaard Brouer's avatar
      nf_conntrack: Use rcu_barrier() · 308ff823
      Jesper Dangaard Brouer authored
      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: default avatarJesper Dangaard Brouer <hawk@comx.dk>
      Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
      308ff823
  2. 24 Jun, 2009 39 commits