|
|
@@ -6613,6 +6613,9 @@ EXPORT_SYMBOL(unregister_netdevice_queue);
|
|
|
/**
|
|
|
* unregister_netdevice_many - unregister many devices
|
|
|
* @head: list of devices
|
|
|
+ *
|
|
|
+ * Note: As most callers use a stack allocated list_head,
|
|
|
+ * we force a list_del() to make sure stack wont be corrupted later.
|
|
|
*/
|
|
|
void unregister_netdevice_many(struct list_head *head)
|
|
|
{
|
|
|
@@ -6622,6 +6625,7 @@ void unregister_netdevice_many(struct list_head *head)
|
|
|
rollback_registered_many(head);
|
|
|
list_for_each_entry(dev, head, unreg_list)
|
|
|
net_set_todo(dev);
|
|
|
+ list_del(head);
|
|
|
}
|
|
|
}
|
|
|
EXPORT_SYMBOL(unregister_netdevice_many);
|
|
|
@@ -7077,7 +7081,6 @@ static void __net_exit default_device_exit_batch(struct list_head *net_list)
|
|
|
}
|
|
|
}
|
|
|
unregister_netdevice_many(&dev_kill_list);
|
|
|
- list_del(&dev_kill_list);
|
|
|
rtnl_unlock();
|
|
|
}
|
|
|
|