On Tue, Dec 02, 2014 at 07:35:39PM +0100, Pablo Neira Ayuso wrote: > On Sun, Nov 30, 2014 at 07:57:01PM +0100, Jozsef Kadlecsik wrote: > > Signed-off-by: Jozsef Kadlecsik <kadlec@xxxxxxxxxxxxxxxxx> > > --- > > net/netfilter/ipset/ip_set_list_set.c | 386 ++++++++++++++++------------------ > > 1 file changed, 182 insertions(+), 204 deletions(-) > > > > diff --git a/net/netfilter/ipset/ip_set_list_set.c b/net/netfilter/ipset/ip_set_list_set.c > > index f8f6828..323115a 100644 > > --- a/net/netfilter/ipset/ip_set_list_set.c > > +++ b/net/netfilter/ipset/ip_set_list_set.c > > @@ -9,6 +9,7 @@ > > > > #include <linux/module.h> > > #include <linux/ip.h> > > +#include <linux/rculist.h> > > #include <linux/skbuff.h> > > #include <linux/errno.h> > > > > @@ -27,6 +28,8 @@ MODULE_ALIAS("ip_set_list:set"); > > > > /* Member elements */ > > struct set_elem { > > + struct rcu_head rcu; > > + struct list_head list; > > I think rcu_barrier() in the module removal path is missing to make > sure call_rcu() is called before the module is gone. I mean, we make sure rcu softirq runs to release these objects before the module is gone. -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html