X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blobdiff_plain;f=net%2F8021q%2Fvlan.c;h=ff240391b4842020f1a37e5ada487bcc52cd0d7b;hp=5471628d3ffe73fd0f8b3cc8d3504cfeae78019c;hb=f63b2b3204ea962e9cc34a223771ec973694f8bf;hpb=f906fb1d70e016726fccfb0d978c5d425503db9d diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index 5471628d3ffe..ff240391b484 100644 --- a/net/8021q/vlan.c +++ b/net/8021q/vlan.c @@ -110,13 +110,6 @@ void unregister_vlan_dev(struct net_device *dev, struct list_head *head) grp = rtnl_dereference(real_dev->vlgrp); BUG_ON(!grp); - /* Take it out of our own structures, but be sure to interlock with - * HW accelerating devices or SW vlan input packet processing if - * VLAN is not 0 (leave it there for 802.1p). - */ - if (vlan_id && (real_dev->features & NETIF_F_HW_VLAN_FILTER)) - ops->ndo_vlan_rx_kill_vid(real_dev, vlan_id); - grp->nr_vlans--; if (vlan->flags & VLAN_FLAG_GVRP) @@ -139,6 +132,9 @@ void unregister_vlan_dev(struct net_device *dev, struct list_head *head) call_rcu(&grp->rcu, vlan_rcu_free); } + if (real_dev->features & NETIF_F_HW_VLAN_FILTER) + ops->ndo_vlan_rx_kill_vid(real_dev, vlan_id); + /* Get rid of the vlan's reference to real_dev */ dev_put(real_dev); }