Hi Mantas, Thank you for the report. Could you try out the attached patch?
On Sat, Mar 11, 2017 at 05:10:22PM +0200, Mantas Mikulėnas wrote: > Hello, > > It seems that commit 002d8a1a6c11b9b2a8ac615095589111dd52749b ("net: > skip genenerating uevents for network namespaces that are exiting") > broke 'remove' uevents for *all* network interfaces, even for those in > the main/default namespace. > > Other than breaking some of my udev rules, this also causes problems for > NetworkManager, which apparently relies on those uevents to update its > interface information cache. (I ended up reverting that commit locally > just so I could connect to VPNs again.) > > This problem is present in both v4.10.1 and current master > (v4.11-rc1-290-g434fd6353b4c). > > -- > Mantas Mikulėnas <graw...@gmail.com>
diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c index 3c4bbec..20c48cf 100644 --- a/net/core/net_namespace.c +++ b/net/core/net_namespace.c @@ -34,6 +34,7 @@ EXPORT_SYMBOL_GPL(net_namespace_list); struct net init_net = { .dev_base_head = LIST_HEAD_INIT(init_net.dev_base_head), + .exit_list = LIST_HEAD_INIT(init_net.exit_list), }; EXPORT_SYMBOL(init_net); @@ -286,6 +287,7 @@ static __net_init int setup_net(struct net *net, struct user_namespace *user_ns) net->user_ns = user_ns; idr_init(&net->netns_ids); spin_lock_init(&net->nsid_lock); + INIT_LIST_HEAD(&net->exit_list); list_for_each_entry(ops, &pernet_list, list) { error = ops_init(ops, net);