diff options
Diffstat (limited to 'drivers/net/ethernet/intel/e1000e/netdev.c')
-rw-r--r-- | drivers/net/ethernet/intel/e1000e/netdev.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index 73f745205a1c..2b2e2f8c6369 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c | |||
@@ -154,16 +154,6 @@ void __ew32(struct e1000_hw *hw, unsigned long reg, u32 val) | |||
154 | writel(val, hw->hw_addr + reg); | 154 | writel(val, hw->hw_addr + reg); |
155 | } | 155 | } |
156 | 156 | ||
157 | static bool e1000e_vlan_used(struct e1000_adapter *adapter) | ||
158 | { | ||
159 | u16 vid; | ||
160 | |||
161 | for_each_set_bit(vid, adapter->active_vlans, VLAN_N_VID) | ||
162 | return true; | ||
163 | |||
164 | return false; | ||
165 | } | ||
166 | |||
167 | /** | 157 | /** |
168 | * e1000_regdump - register printout routine | 158 | * e1000_regdump - register printout routine |
169 | * @hw: pointer to the HW structure | 159 | * @hw: pointer to the HW structure |
@@ -3453,8 +3443,7 @@ static void e1000e_set_rx_mode(struct net_device *netdev) | |||
3453 | 3443 | ||
3454 | ew32(RCTL, rctl); | 3444 | ew32(RCTL, rctl); |
3455 | 3445 | ||
3456 | if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX || | 3446 | if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX) |
3457 | e1000e_vlan_used(adapter)) | ||
3458 | e1000e_vlan_strip_enable(adapter); | 3447 | e1000e_vlan_strip_enable(adapter); |
3459 | else | 3448 | else |
3460 | e1000e_vlan_strip_disable(adapter); | 3449 | e1000e_vlan_strip_disable(adapter); |
@@ -6926,6 +6915,14 @@ static netdev_features_t e1000_fix_features(struct net_device *netdev, | |||
6926 | if ((hw->mac.type >= e1000_pch2lan) && (netdev->mtu > ETH_DATA_LEN)) | 6915 | if ((hw->mac.type >= e1000_pch2lan) && (netdev->mtu > ETH_DATA_LEN)) |
6927 | features &= ~NETIF_F_RXFCS; | 6916 | features &= ~NETIF_F_RXFCS; |
6928 | 6917 | ||
6918 | /* Since there is no support for separate Rx/Tx vlan accel | ||
6919 | * enable/disable make sure Tx flag is always in same state as Rx. | ||
6920 | */ | ||
6921 | if (features & NETIF_F_HW_VLAN_CTAG_RX) | ||
6922 | features |= NETIF_F_HW_VLAN_CTAG_TX; | ||
6923 | else | ||
6924 | features &= ~NETIF_F_HW_VLAN_CTAG_TX; | ||
6925 | |||
6929 | return features; | 6926 | return features; |
6930 | } | 6927 | } |
6931 | 6928 | ||