diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2009-10-27 07:06:36 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-10-28 02:22:07 -0700 |
commit | 23289a37e2b127dfc4de1313fba15bb4c9f0cd5b (patch) | |
tree | 209edb2cb43dedb97477e1297873ada4759a1066 /drivers/net/macvlan.c | |
parent | 9b5e383c11b08784eb0087617f880077982ef769 (diff) | |
download | kernel-crypto-23289a37e2b127dfc4de1313fba15bb4c9f0cd5b.tar.gz kernel-crypto-23289a37e2b127dfc4de1313fba15bb4c9f0cd5b.tar.xz kernel-crypto-23289a37e2b127dfc4de1313fba15bb4c9f0cd5b.zip |
net: add a list_head parameter to dellink() method
Adding a list_head parameter to rtnl_link_ops->dellink() methods
allow us to queue devices on a list, in order to dismantle
them all at once.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/macvlan.c')
-rw-r--r-- | drivers/net/macvlan.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index 3aabfd9dd21..20b7707f38e 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c @@ -555,13 +555,13 @@ static int macvlan_newlink(struct net_device *dev, return 0; } -static void macvlan_dellink(struct net_device *dev) +static void macvlan_dellink(struct net_device *dev, struct list_head *head) { struct macvlan_dev *vlan = netdev_priv(dev); struct macvlan_port *port = vlan->port; list_del(&vlan->list); - unregister_netdevice(dev); + unregister_netdevice_queue(dev, head); if (list_empty(&port->vlans)) macvlan_port_destroy(port->dev); @@ -601,7 +601,7 @@ static int macvlan_device_event(struct notifier_block *unused, break; case NETDEV_UNREGISTER: list_for_each_entry_safe(vlan, next, &port->vlans, list) - macvlan_dellink(vlan->dev); + macvlan_dellink(vlan->dev, NULL); break; } return NOTIFY_DONE; |