From: Cong Wang <xiyou.wangc...@gmail.com> Date: Wed, 16 Nov 2016 10:27:02 -0800
> Andrei reports we still allocate netns ID from idr after we destroy > it in cleanup_net(). > > cleanup_net(): > ... > idr_destroy(&net->netns_ids); > ... > list_for_each_entry_reverse(ops, &pernet_list, list) > ops_exit_list(ops, &net_exit_list); > -> rollback_registered_many() > -> rtmsg_ifinfo_build_skb() > -> rtnl_fill_ifinfo() > -> peernet2id_alloc() > > After that point we should not even access net->netns_ids, we > should check the death of the current netns as early as we can in > peernet2id_alloc(). > > For net-next we can consider to avoid sending rtmsg totally, > it is a good optimization for netns teardown path. > > Fixes: 0c7aecd4bde4 ("netns: add rtnl cmd to add and get peer netns ids") > Reported-by: Andrei Vagin <ava...@gmail.com> > Cc: Nicolas Dichtel <nicolas.dich...@6wind.com> > Signed-off-by: Cong Wang <xiyou.wangc...@gmail.com> Applied and queued up for -stable, thanks.