Skip to contentSkip to conversation

net: Introduce unregister_netdevice_many()

PATCH Applied Eric Dumazet 2 participants 3 messages Oct 27, 2009

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 2/6 net: Introduce unregister_netdevice_many()

Introduce rollback_registered_many() and unregister_netdevice_many()

rollback_registered_many() is able to perform necessary steps at device dismantle time, factorizing two expensive synchronize_net() calls.

---
 include/linux/netdevice.h |    1 
 net/core/dev.c            |   97 ++++++++++++++++++++++++------------
 2 files changed, 66 insertions(+), 32 deletions(-)
include/linux/netdevice.h +1 -0
index 0ded0a4..e7c227d 100644
@@ -1119,6 +1119,7 @@ extern int		dev_queue_xmit(struct sk_buff *skb);
 extern int		register_netdevice(struct net_device *dev);
 extern void		unregister_netdevice_queue(struct net_device *dev,
 						   struct list_head *head);
+extern void		unregister_netdevice_many(struct list_head *head);
 static inline void unregister_netdevice(struct net_device *dev)
 {
 	unregister_netdevice_queue(dev, NULL);
net/core/dev.c +65 -32

130 lines not on this page · raw message

#1 lore raw

net/core/dev.c void unregister_netdevice_queue(struct net_device *dev, struct list_head *head) · line 5305

Quoted 11 lines · On Tuesday 27 October 2009 19:04:19 you wrote:
net/core/dev.c +10 -0
+void unregister_netdevice_many(struct list_head *head)
+{
+       struct net_device *dev;
+
+       if (!list_empty(head)) {
+               rollback_registered_many(head);
+               list_for_each_entry(dev, head, unreg_list)
+                       net_set_todo(dev);
+       }
+}

Looks like EXPORT_SYMBOL(unregister_netdevice_many) is missing?

Thanks,
tavi

#2 lore raw
Quoted 2 lines · Octavian Purdila

Looks like EXPORT_SYMBOL(unregister_netdevice_many) is missing?

I added it in following patch, when really needed/used