aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYi Zou <yi.zou@intel.com>2010-05-18 12:00:08 -0400
committerDavid S. Miller <davem@davemloft.net>2010-05-18 22:44:19 -0400
commit38e0bd9898e5d04d464e92973785a26e774f5430 (patch)
treefbac6d95b7564d9725b94bb787d84b2ac7915022
parent497f683f033d1498a6d42a48c095927de5949906 (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.c10
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));