aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/e1000
diff options
context:
space:
mode:
authorBruce Allan <bruce.w.allan@intel.com>2006-09-27 12:54:08 -0700
committerAuke Kok <juke-jan.h.kok@intel.com>2006-09-27 12:54:08 -0700
commit4666560a37dfdc748ae7c1d9f09c7b6ff03ce899 (patch)
tree95c4ff6ab9ba1e21b5eb35e59af7af5ac49b6869 /drivers/net/e1000
parente1000: rework polarity, NVM, eeprom code and fixes. (diff)
downloadlinux-dev-4666560a37dfdc748ae7c1d9f09c7b6ff03ce899.tar.xz
linux-dev-4666560a37dfdc748ae7c1d9f09c7b6ff03ce899.zip
e1000: don't strip vlan ID if 8021q claims it
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Diffstat (limited to 'drivers/net/e1000')
-rw-r--r--drivers/net/e1000/e1000_main.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 5098dd7df7cd..593bfbeef8d4 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -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);
}