Re: [PATCH 01/20] net: NETDEV_UNREGISTER_PERNET -> NETDEV_UNREGISTER_BATCH
From: Octavian Purdila <hidden>
Date: 2009-11-30 19:28:49
On Monday 30 November 2009 21:00:41 you wrote:
Octavian Purdila [off-list ref] writes:quoted
On Monday 30 November 2009 03:45:58 you wrote:quoted
+ /* Process any work delayed until the end of the batch */ + dev = list_entry(head->next, struct net_device, unreg_list); + call_netdevice_notifiers(NETDEV_UNREGISTER_BATCH, dev); - list_for_each_entry_safe(dev, aux, head, unreg_list) { - int new_net = 1; - list_for_each_entry(fdev, &pernet_list, unreg_list) { - if (net_eq(dev_net(dev), dev_net(fdev))) { - new_net = 0; - dev_put(dev); - break; - } - } - if (new_net) - list_move(&dev->unreg_list, &pernet_list); - }This implies that the devices we want to batch unregister needs to be part of the same namespace. It might be worth mentioning that in the unregister_netdevice_many() function comments.No it does not. For the route cache flush we have already done the delayed invalidate per namespace. So we only need to walk the route cache once and simply remove the entries that have been invalidated.
Right ! I thought that we need to do the cache cleaning per namespace, now my patch looks really stupid :)