diff --git a/[refs] b/[refs] index a5216d91f51b..84ab59e9c26d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 270acefafeb74ce2fe93d35b75733870bf1e11e7 +refs/heads/master: d0c082cea6dfb9b674b4f6e1e84025662dbd24e8 diff --git a/trunk/net/core/dev.c b/trunk/net/core/dev.c index 8f9d3b38a44b..9475f3e624a8 100644 --- a/trunk/net/core/dev.c +++ b/trunk/net/core/dev.c @@ -4852,6 +4852,12 @@ static void __net_exit default_device_exit(struct net *net) if (dev->features & NETIF_F_NETNS_LOCAL) continue; + /* Delete virtual devices */ + if (dev->rtnl_link_ops && dev->rtnl_link_ops->dellink) { + dev->rtnl_link_ops->dellink(dev); + continue; + } + /* Push remaing network devices to init_net */ snprintf(fb_name, IFNAMSIZ, "dev%d", dev->ifindex); err = dev_change_net_namespace(dev, &init_net, fb_name);