From 6502a7acccb17c8b89ce2da94a7036dca9a40f80 Mon Sep 17 00:00:00 2001 From: "Eric W. Biederman" Date: Mon, 29 Dec 2008 18:21:48 -0800 Subject: [PATCH] --- yaml --- r: 123992 b: refs/heads/master c: 8eb79863962bbf18ebf648335e329bfd468432fa h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/core/dev.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 45f25b5ef842..4639cb113fa7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 91b208c7c1db4cefa2247f8243fbda75b0472d24 +refs/heads/master: 8eb79863962bbf18ebf648335e329bfd468432fa diff --git a/trunk/net/core/dev.c b/trunk/net/core/dev.c index 446424027d24..09c66a449da6 100644 --- a/trunk/net/core/dev.c +++ b/trunk/net/core/dev.c @@ -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(); }