Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland...
[platform/kernel/linux-rpi.git] / net / core / dev.c
index 4464240..09c66a4 100644 (file)
@@ -5066,13 +5066,14 @@ static struct pernet_operations __net_initdata netdev_net_ops = {
 
 static void __net_exit default_device_exit(struct net *net)
 {
-       struct net_device *dev, *next;
+       struct net_device *dev;
        /*
         * Push all migratable of the network devices back to the
         * initial network namespace
         */
        rtnl_lock();
-       for_each_netdev_safe(net, dev, next) {
+restart:
+       for_each_netdev(net, dev) {
                int err;
                char fb_name[IFNAMSIZ];
 
@@ -5083,7 +5084,7 @@ static void __net_exit default_device_exit(struct net *net)
                /* Delete virtual devices */
                if (dev->rtnl_link_ops && dev->rtnl_link_ops->dellink) {
                        dev->rtnl_link_ops->dellink(dev);
-                       continue;
+                       goto restart;
                }
 
                /* Push remaing network devices to init_net */
@@ -5094,6 +5095,7 @@ static void __net_exit default_device_exit(struct net *net)
                                __func__, dev->name, err);
                        BUG();
                }
+               goto restart;
        }
        rtnl_unlock();
 }