On Fri, Aug 20, 2010 at 12:29:00PM -0700, Paul E. McKenney wrote: > On Fri, Aug 20, 2010 at 10:59:19PM +0900, Simon Horman wrote: > > On Fri, Aug 20, 2010 at 10:33:21PM +0900, Simon Horman wrote: > > > Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx> [ snip ] > > > @@ -223,8 +223,8 @@ int unregister_ip_vs_scheduler(struct ip > > > /* > > > * Remove it from the d-linked scheduler list > > > */ > > > - list_del(&scheduler->n_list); > > > - write_unlock_bh(&__ip_vs_sched_lock); > > > + list_del_rcu(&scheduler->n_list); > > > + spin_unlock_bh(&ip_vs_sched_mutex); > > > > On further reading, I believe that I need a synchronize_rcu(); here, > > Good catch! :-) > However, you actually need synchronize_rcu_bh() to match your > rcu_read_lock_bh() calls. Also, given Julian's comment, you probably > need something to show that this conversion is a real improvement. Thanks. As suggested by Julian and others, I've decided to just use a spinlock and not use RCU for this. -- 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