diff options
author | Yi Zou <yi.zou@intel.com> | 2010-05-18 12:00:08 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-05-18 22:44:19 -0400 |
commit | 38e0bd9898e5d04d464e92973785a26e774f5430 (patch) | |
tree | fbac6d95b7564d9725b94bb787d84b2ac7915022 | |
parent | 497f683f033d1498a6d42a48c095927de5949906 (diff) |
ixgbe: always enable vlan strip/insert when DCB is enabled
when DCB mode is on, we want the HW VLAN stripping to be always enabled.
Signed-off-by: Yi Zou <yi.zou@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ixgbe/ixgbe_main.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index a9e091cb5499..f0f7329ea357 100644 --- a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c | |||
@@ -2845,7 +2845,11 @@ static void ixgbe_vlan_filter_disable(struct ixgbe_adapter *adapter) | |||
2845 | 2845 | ||
2846 | switch (hw->mac.type) { | 2846 | switch (hw->mac.type) { |
2847 | case ixgbe_mac_82598EB: | 2847 | case ixgbe_mac_82598EB: |
2848 | vlnctrl &= ~(IXGBE_VLNCTRL_VME | IXGBE_VLNCTRL_VFE); | 2848 | vlnctrl &= ~IXGBE_VLNCTRL_VFE; |
2849 | #ifdef CONFIG_IXGBE_DCB | ||
2850 | if (!(adapter->flags & IXGBE_FLAG_DCB_ENABLED)) | ||
2851 | vlnctrl &= ~IXGBE_VLNCTRL_VME; | ||
2852 | #endif | ||
2849 | vlnctrl &= ~IXGBE_VLNCTRL_CFIEN; | 2853 | vlnctrl &= ~IXGBE_VLNCTRL_CFIEN; |
2850 | IXGBE_WRITE_REG(hw, IXGBE_VLNCTRL, vlnctrl); | 2854 | IXGBE_WRITE_REG(hw, IXGBE_VLNCTRL, vlnctrl); |
2851 | break; | 2855 | break; |
@@ -2853,6 +2857,10 @@ static void ixgbe_vlan_filter_disable(struct ixgbe_adapter *adapter) | |||
2853 | vlnctrl &= ~IXGBE_VLNCTRL_VFE; | 2857 | vlnctrl &= ~IXGBE_VLNCTRL_VFE; |
2854 | vlnctrl &= ~IXGBE_VLNCTRL_CFIEN; | 2858 | vlnctrl &= ~IXGBE_VLNCTRL_CFIEN; |
2855 | IXGBE_WRITE_REG(hw, IXGBE_VLNCTRL, vlnctrl); | 2859 | IXGBE_WRITE_REG(hw, IXGBE_VLNCTRL, vlnctrl); |
2860 | #ifdef CONFIG_IXGBE_DCB | ||
2861 | if (adapter->flags & IXGBE_FLAG_DCB_ENABLED) | ||
2862 | break; | ||
2863 | #endif | ||
2856 | for (i = 0; i < adapter->num_rx_queues; i++) { | 2864 | for (i = 0; i < adapter->num_rx_queues; i++) { |
2857 | j = adapter->rx_ring[i]->reg_idx; | 2865 | j = adapter->rx_ring[i]->reg_idx; |
2858 | vlnctrl = IXGBE_READ_REG(hw, IXGBE_RXDCTL(j)); | 2866 | vlnctrl = IXGBE_READ_REG(hw, IXGBE_RXDCTL(j)); |