aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/dev.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-02-19 22:17:35 -0500
committerDavid S. Miller <davem@davemloft.net>2011-02-19 22:17:35 -0500
commitda935c66bacb3ed9ada984b053297f87c2dff63a (patch)
tree46278da2b312c73f1375b830d7e5912bf23abd78 /net/core/dev.c
parent9435eb1cf0b76b323019cebf8d16762a50a12a19 (diff)
parent2205a6ea93fea76f88b43727fea53f3ce3790d6f (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: Documentation/feature-removal-schedule.txt drivers/net/e1000e/netdev.c net/xfrm/xfrm_policy.c
Diffstat (limited to 'net/core/dev.c')
-rw-r--r--net/core/dev.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index 4f6943928fe..9d8bfd9d444 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1281,10 +1281,13 @@ static int __dev_close_many(struct list_head *head)
1281 1281
1282static int __dev_close(struct net_device *dev) 1282static int __dev_close(struct net_device *dev)
1283{ 1283{
1284 int retval;
1284 LIST_HEAD(single); 1285 LIST_HEAD(single);
1285 1286
1286 list_add(&dev->unreg_list, &single); 1287 list_add(&dev->unreg_list, &single);
1287 return __dev_close_many(&single); 1288 retval = __dev_close_many(&single);
1289 list_del(&single);
1290 return retval;
1288} 1291}
1289 1292
1290static int dev_close_many(struct list_head *head) 1293static int dev_close_many(struct list_head *head)
@@ -1326,7 +1329,7 @@ int dev_close(struct net_device *dev)
1326 1329
1327 list_add(&dev->unreg_list, &single); 1330 list_add(&dev->unreg_list, &single);
1328 dev_close_many(&single); 1331 dev_close_many(&single);
1329 1332 list_del(&single);
1330 return 0; 1333 return 0;
1331} 1334}
1332EXPORT_SYMBOL(dev_close); 1335EXPORT_SYMBOL(dev_close);
@@ -5243,6 +5246,7 @@ static void rollback_registered(struct net_device *dev)
5243 5246
5244 list_add(&dev->unreg_list, &single); 5247 list_add(&dev->unreg_list, &single);
5245 rollback_registered_many(&single); 5248 rollback_registered_many(&single);
5249 list_del(&single);
5246} 5250}
5247 5251
5248u32 netdev_fix_features(struct net_device *dev, u32 features) 5252u32 netdev_fix_features(struct net_device *dev, u32 features)
@@ -6433,6 +6437,7 @@ static void __net_exit default_device_exit_batch(struct list_head *net_list)
6433 } 6437 }
6434 } 6438 }
6435 unregister_netdevice_many(&dev_kill_list); 6439 unregister_netdevice_many(&dev_kill_list);
6440 list_del(&dev_kill_list);
6436 rtnl_unlock(); 6441 rtnl_unlock();
6437} 6442}
6438 6443