From mboxrd@z Thu Jan 1 00:00:00 1970 From: ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org (Eric W. Biederman) Subject: Re: [PATCH] wireless extensions: play with netns Date: Wed, 17 Jun 2009 16:54:12 -0700 Message-ID: References: <1245263058.31588.38.camel@johannes.local> <1245276899.31588.57.camel@johannes.local> <1245282099.31588.69.camel@johannes.local> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: John Linville , Netdev , linux-wireless , "Eric W. Biederman" , Alexey Dobriyan To: Johannes Berg Return-path: In-Reply-To: <1245282099.31588.69.camel-YfaajirXv2244ywRPIzf9A@public.gmane.org> (Johannes Berg's message of "Thu\, 18 Jun 2009 01\:41\:38 +0200") Sender: linux-wireless-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: netdev.vger.kernel.org Johannes Berg writes: > On Wed, 2009-06-17 at 16:24 -0700, Eric W. Biederman wrote: > >> > So it looks like I can also use rcu_read_lock(), but there's no >> > for_each_net_rcu(), should there be? >> >> I'm not using rcu safe list manipulation. What makes it look like >> rcu_read_lock() is safe? > > Indeed. I was looking at rcu_barrier() only. How about the patch below? > > johannes > > Subject: net: make namespace iteration possible under RCU > > We already call rcu_barrier(), so all we need to take > care of is using proper RCU list add/del primitives. This of course gives you a network namespace that can be found by for_each_net rcu while the per net exit functions are running. I think that opens up to races that I don't want to think about. I still haven't tracked down how I am occasionally getting time wait sockets with an invalid network namespace. Eric -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html