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);

Reply via email to