aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel
diff options
context:
space:
mode:
authorJohn Fastabend <john.r.fastabend@intel.com>2012-05-15 01:59:26 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2012-06-06 00:00:31 -0400
commit146d4cc98d660cbdeae52ae35a4d038d0dab6da5 (patch)
treeb87535250ff7c186cf9fde12a2b4bce94ec939d6 /drivers/net/ethernet/intel
parent470a54207ccf7045a59df727573bd9d148988582 (diff)
ixgbe: fix_features rxvlan is independent of DCB and needs to be set
DCB can be used independent of if RX VLAN stripping is enabled or disabled so remove erroneous check. Also enable or disable VLAN stripping when features are applied so hardware and feature flags are in sync. CC: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: John Fastabend <john.r.fastabend@intel.com> Tested-by: Marcus Dennis <marcusx.e.dennis@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel')
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_main.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index bf20457ea23a..b8b208720fb1 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -3607,10 +3607,6 @@ static void ixgbe_configure_dcb(struct ixgbe_adapter *adapter)
3607 if (hw->mac.type == ixgbe_mac_82598EB) 3607 if (hw->mac.type == ixgbe_mac_82598EB)
3608 netif_set_gso_max_size(adapter->netdev, 32768); 3608 netif_set_gso_max_size(adapter->netdev, 32768);
3609 3609
3610
3611 /* Enable VLAN tag insert/strip */
3612 adapter->netdev->features |= NETIF_F_HW_VLAN_RX;
3613
3614 hw->mac.ops.set_vfta(&adapter->hw, 0, 0, true); 3610 hw->mac.ops.set_vfta(&adapter->hw, 0, 0, true);
3615 3611
3616#ifdef IXGBE_FCOE 3612#ifdef IXGBE_FCOE
@@ -6701,11 +6697,6 @@ static netdev_features_t ixgbe_fix_features(struct net_device *netdev,
6701{ 6697{
6702 struct ixgbe_adapter *adapter = netdev_priv(netdev); 6698 struct ixgbe_adapter *adapter = netdev_priv(netdev);
6703 6699
6704#ifdef CONFIG_DCB
6705 if (adapter->flags & IXGBE_FLAG_DCB_ENABLED)
6706 features &= ~NETIF_F_HW_VLAN_RX;
6707#endif
6708
6709 /* return error if RXHASH is being enabled when RSS is not supported */ 6700 /* return error if RXHASH is being enabled when RSS is not supported */
6710 if (!(adapter->flags & IXGBE_FLAG_RSS_ENABLED)) 6701 if (!(adapter->flags & IXGBE_FLAG_RSS_ENABLED))
6711 features &= ~NETIF_F_RXHASH; 6702 features &= ~NETIF_F_RXHASH;
@@ -6718,7 +6709,6 @@ static netdev_features_t ixgbe_fix_features(struct net_device *netdev,
6718 if (!(adapter->flags2 & IXGBE_FLAG2_RSC_CAPABLE)) 6709 if (!(adapter->flags2 & IXGBE_FLAG2_RSC_CAPABLE))
6719 features &= ~NETIF_F_LRO; 6710 features &= ~NETIF_F_LRO;
6720 6711
6721
6722 return features; 6712 return features;
6723} 6713}
6724 6714
@@ -6766,6 +6756,11 @@ static int ixgbe_set_features(struct net_device *netdev,
6766 need_reset = true; 6756 need_reset = true;
6767 } 6757 }
6768 6758
6759 if (features & NETIF_F_HW_VLAN_RX)
6760 ixgbe_vlan_strip_enable(adapter);
6761 else
6762 ixgbe_vlan_strip_disable(adapter);
6763
6769 if (changed & NETIF_F_RXALL) 6764 if (changed & NETIF_F_RXALL)
6770 need_reset = true; 6765 need_reset = true;
6771 6766