On Fri, Sep 2, 2016 at 1:12 AM, Nicolas Dichtel <nicolas.dich...@6wind.com> wrote: > Le 02/09/2016 à 06:53, Cong Wang a écrit : >> We never read or change netns id in hardirq context, >> the only place we read netns id in softirq context >> is in vxlan_xmit(). So, it should be enough to just >> disable BH. > > Are you sure? Did you audit all part of the code?
I did audit all the callers, and I didn't find any of them in IRQ context. > peernet2id() is called from netlink core system (do_one_broadcast()). Are you > sure that no driver call this function from an hard irq context? I audit all callers of netlink_broadcast(), and I don't see any of them in hardirq context. > > I think that NETLINK_LISTEN_ALL_NSID is largely untested, so it will be hard > to > detect a bug introduced in this feature. This patch passed my netns stress tests, I have LOCKDEP enabled, and I don't get any warning or crash etc.