提交 ce305002 编写于 作者: P Patrick McHardy 提交者: David S. Miller

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: NPatrick McHardy <kaber@trash.net>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 b3ce0325
......@@ -165,6 +165,8 @@ void unregister_vlan_dev(struct net_device *dev)
synchronize_net();
unregister_netdevice(dev);
/* If the group is now empty, kill off the group. */
if (grp->nr_vlans == 0) {
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 */
dev_put(real_dev);
unregister_netdevice(dev);
}
static void vlan_transfer_operstate(const struct net_device *dev,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册