vlan: Move device unregistration before lower dev cleanup
Move the unregister_netdevice() call for the VLAN device before cleanup for the lower device. This is needed by GVRP so it can send a leave message before the applicant on the lower device is cleaned up. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b3ce0325f2
commit
ce305002e1
|
@ -165,6 +165,8 @@ void unregister_vlan_dev(struct net_device *dev)
|
||||||
|
|
||||||
synchronize_net();
|
synchronize_net();
|
||||||
|
|
||||||
|
unregister_netdevice(dev);
|
||||||
|
|
||||||
/* If the group is now empty, kill off the group. */
|
/* If the group is now empty, kill off the group. */
|
||||||
if (grp->nr_vlans == 0) {
|
if (grp->nr_vlans == 0) {
|
||||||
if (real_dev->features & NETIF_F_HW_VLAN_RX)
|
if (real_dev->features & NETIF_F_HW_VLAN_RX)
|
||||||
|
@ -178,8 +180,6 @@ void unregister_vlan_dev(struct net_device *dev)
|
||||||
|
|
||||||
/* Get rid of the vlan's reference to real_dev */
|
/* Get rid of the vlan's reference to real_dev */
|
||||||
dev_put(real_dev);
|
dev_put(real_dev);
|
||||||
|
|
||||||
unregister_netdevice(dev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void vlan_transfer_operstate(const struct net_device *dev,
|
static void vlan_transfer_operstate(const struct net_device *dev,
|
||||||
|
|
Loading…
Reference in New Issue