e1000: don't strip vlan ID if 8021q claims it
authorBruce Allan <bruce.w.allan@intel.com>
Wed, 27 Sep 2006 19:54:08 +0000 (12:54 -0700)
committerAuke Kok <juke-jan.h.kok@intel.com>
Wed, 27 Sep 2006 19:54:08 +0000 (12:54 -0700)
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
drivers/net/e1000/e1000_main.c

index 5098dd7..593bfbe 100644 (file)
@@ -1344,8 +1344,12 @@ e1000_close(struct net_device *netdev)
        e1000_free_all_tx_resources(adapter);
        e1000_free_all_rx_resources(adapter);
 
+       /* kill manageability vlan ID if supported, but not if a vlan with
+        * the same ID is registered on the host OS (let 8021q kill it) */
        if ((adapter->hw.mng_cookie.status &
-                         E1000_MNG_DHCP_COOKIE_STATUS_VLAN_SUPPORT)) {
+                         E1000_MNG_DHCP_COOKIE_STATUS_VLAN_SUPPORT) &&
+            !(adapter->vlgrp &&
+                         adapter->vlgrp->vlan_devices[adapter->mng_vlan_id])) {
                e1000_vlan_rx_kill_vid(netdev, adapter->mng_vlan_id);
        }