diff options
Diffstat (limited to 'drivers/net')
62 files changed, 230 insertions, 215 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 2aac890320cb..8d324f8a1757 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c | |||
@@ -4322,9 +4322,9 @@ static void bond_setup(struct net_device *bond_dev) | |||
4322 | */ | 4322 | */ |
4323 | 4323 | ||
4324 | bond_dev->hw_features = BOND_VLAN_FEATURES | | 4324 | bond_dev->hw_features = BOND_VLAN_FEATURES | |
4325 | NETIF_F_HW_VLAN_TX | | 4325 | NETIF_F_HW_VLAN_CTAG_TX | |
4326 | NETIF_F_HW_VLAN_RX | | 4326 | NETIF_F_HW_VLAN_CTAG_RX | |
4327 | NETIF_F_HW_VLAN_FILTER; | 4327 | NETIF_F_HW_VLAN_CTAG_FILTER; |
4328 | 4328 | ||
4329 | bond_dev->hw_features &= ~(NETIF_F_ALL_CSUM & ~NETIF_F_HW_CSUM); | 4329 | bond_dev->hw_features &= ~(NETIF_F_ALL_CSUM & ~NETIF_F_HW_CSUM); |
4330 | bond_dev->features |= bond_dev->hw_features; | 4330 | bond_dev->features |= bond_dev->hw_features; |
diff --git a/drivers/net/ethernet/3com/typhoon.c b/drivers/net/ethernet/3com/typhoon.c index 27aaaf99e73e..839a96213742 100644 --- a/drivers/net/ethernet/3com/typhoon.c +++ b/drivers/net/ethernet/3com/typhoon.c | |||
@@ -2445,9 +2445,9 @@ typhoon_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
2445 | * settings -- so we only allow the user to toggle the TX processing. | 2445 | * settings -- so we only allow the user to toggle the TX processing. |
2446 | */ | 2446 | */ |
2447 | dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO | | 2447 | dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO | |
2448 | NETIF_F_HW_VLAN_TX; | 2448 | NETIF_F_HW_VLAN_CTAG_TX; |
2449 | dev->features = dev->hw_features | | 2449 | dev->features = dev->hw_features | |
2450 | NETIF_F_HW_VLAN_RX | NETIF_F_RXCSUM; | 2450 | NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_RXCSUM; |
2451 | 2451 | ||
2452 | if(register_netdev(dev) < 0) { | 2452 | if(register_netdev(dev) < 0) { |
2453 | err_msg = "unable to register netdev"; | 2453 | err_msg = "unable to register netdev"; |
diff --git a/drivers/net/ethernet/adaptec/starfire.c b/drivers/net/ethernet/adaptec/starfire.c index 549b77500579..365865130f7c 100644 --- a/drivers/net/ethernet/adaptec/starfire.c +++ b/drivers/net/ethernet/adaptec/starfire.c | |||
@@ -702,7 +702,7 @@ static int starfire_init_one(struct pci_dev *pdev, | |||
702 | #endif /* ZEROCOPY */ | 702 | #endif /* ZEROCOPY */ |
703 | 703 | ||
704 | #ifdef VLAN_SUPPORT | 704 | #ifdef VLAN_SUPPORT |
705 | dev->features |= NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER; | 705 | dev->features |= NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_CTAG_FILTER; |
706 | #endif /* VLAN_RX_KILL_VID */ | 706 | #endif /* VLAN_RX_KILL_VID */ |
707 | #ifdef ADDR_64BITS | 707 | #ifdef ADDR_64BITS |
708 | dev->features |= NETIF_F_HIGHDMA; | 708 | dev->features |= NETIF_F_HIGHDMA; |
diff --git a/drivers/net/ethernet/alteon/acenic.c b/drivers/net/ethernet/alteon/acenic.c index c0bc41a784ca..a7689d931053 100644 --- a/drivers/net/ethernet/alteon/acenic.c +++ b/drivers/net/ethernet/alteon/acenic.c | |||
@@ -472,7 +472,7 @@ static int acenic_probe_one(struct pci_dev *pdev, | |||
472 | ap->name = pci_name(pdev); | 472 | ap->name = pci_name(pdev); |
473 | 473 | ||
474 | dev->features |= NETIF_F_SG | NETIF_F_IP_CSUM; | 474 | dev->features |= NETIF_F_SG | NETIF_F_IP_CSUM; |
475 | dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | 475 | dev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX; |
476 | 476 | ||
477 | dev->watchdog_timeo = 5*HZ; | 477 | dev->watchdog_timeo = 5*HZ; |
478 | 478 | ||
diff --git a/drivers/net/ethernet/amd/amd8111e.c b/drivers/net/ethernet/amd/amd8111e.c index 42d4e6ad58a5..6bad84d6e2c4 100644 --- a/drivers/net/ethernet/amd/amd8111e.c +++ b/drivers/net/ethernet/amd/amd8111e.c | |||
@@ -1869,7 +1869,7 @@ static int amd8111e_probe_one(struct pci_dev *pdev, | |||
1869 | SET_NETDEV_DEV(dev, &pdev->dev); | 1869 | SET_NETDEV_DEV(dev, &pdev->dev); |
1870 | 1870 | ||
1871 | #if AMD8111E_VLAN_TAG_USED | 1871 | #if AMD8111E_VLAN_TAG_USED |
1872 | dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX ; | 1872 | dev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX ; |
1873 | #endif | 1873 | #endif |
1874 | 1874 | ||
1875 | lp = netdev_priv(dev); | 1875 | lp = netdev_priv(dev); |
@@ -1907,7 +1907,7 @@ static int amd8111e_probe_one(struct pci_dev *pdev, | |||
1907 | netif_napi_add(dev, &lp->napi, amd8111e_rx_poll, 32); | 1907 | netif_napi_add(dev, &lp->napi, amd8111e_rx_poll, 32); |
1908 | 1908 | ||
1909 | #if AMD8111E_VLAN_TAG_USED | 1909 | #if AMD8111E_VLAN_TAG_USED |
1910 | dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | 1910 | dev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX; |
1911 | #endif | 1911 | #endif |
1912 | /* Probe the external PHY */ | 1912 | /* Probe the external PHY */ |
1913 | amd8111e_probe_ext_phy(dev); | 1913 | amd8111e_probe_ext_phy(dev); |
diff --git a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c index 1f07fc633ab9..3565255cdd81 100644 --- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c +++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c | |||
@@ -417,7 +417,7 @@ static void atl1c_set_multi(struct net_device *netdev) | |||
417 | 417 | ||
418 | static void __atl1c_vlan_mode(netdev_features_t features, u32 *mac_ctrl_data) | 418 | static void __atl1c_vlan_mode(netdev_features_t features, u32 *mac_ctrl_data) |
419 | { | 419 | { |
420 | if (features & NETIF_F_HW_VLAN_RX) { | 420 | if (features & NETIF_F_HW_VLAN_CTAG_RX) { |
421 | /* enable VLAN tag insert/strip */ | 421 | /* enable VLAN tag insert/strip */ |
422 | *mac_ctrl_data |= MAC_CTRL_RMV_VLAN; | 422 | *mac_ctrl_data |= MAC_CTRL_RMV_VLAN; |
423 | } else { | 423 | } else { |
@@ -494,10 +494,10 @@ static netdev_features_t atl1c_fix_features(struct net_device *netdev, | |||
494 | * Since there is no support for separate rx/tx vlan accel | 494 | * Since there is no support for separate rx/tx vlan accel |
495 | * enable/disable make sure tx flag is always in same state as rx. | 495 | * enable/disable make sure tx flag is always in same state as rx. |
496 | */ | 496 | */ |
497 | if (features & NETIF_F_HW_VLAN_RX) | 497 | if (features & NETIF_F_HW_VLAN_CTAG_RX) |
498 | features |= NETIF_F_HW_VLAN_TX; | 498 | features |= NETIF_F_HW_VLAN_CTAG_TX; |
499 | else | 499 | else |
500 | features &= ~NETIF_F_HW_VLAN_TX; | 500 | features &= ~NETIF_F_HW_VLAN_CTAG_TX; |
501 | 501 | ||
502 | if (netdev->mtu > MAX_TSO_FRAME_SIZE) | 502 | if (netdev->mtu > MAX_TSO_FRAME_SIZE) |
503 | features &= ~(NETIF_F_TSO | NETIF_F_TSO6); | 503 | features &= ~(NETIF_F_TSO | NETIF_F_TSO6); |
@@ -510,7 +510,7 @@ static int atl1c_set_features(struct net_device *netdev, | |||
510 | { | 510 | { |
511 | netdev_features_t changed = netdev->features ^ features; | 511 | netdev_features_t changed = netdev->features ^ features; |
512 | 512 | ||
513 | if (changed & NETIF_F_HW_VLAN_RX) | 513 | if (changed & NETIF_F_HW_VLAN_CTAG_RX) |
514 | atl1c_vlan_mode(netdev, features); | 514 | atl1c_vlan_mode(netdev, features); |
515 | 515 | ||
516 | return 0; | 516 | return 0; |
@@ -2475,13 +2475,13 @@ static int atl1c_init_netdev(struct net_device *netdev, struct pci_dev *pdev) | |||
2475 | atl1c_set_ethtool_ops(netdev); | 2475 | atl1c_set_ethtool_ops(netdev); |
2476 | 2476 | ||
2477 | /* TODO: add when ready */ | 2477 | /* TODO: add when ready */ |
2478 | netdev->hw_features = NETIF_F_SG | | 2478 | netdev->hw_features = NETIF_F_SG | |
2479 | NETIF_F_HW_CSUM | | 2479 | NETIF_F_HW_CSUM | |
2480 | NETIF_F_HW_VLAN_RX | | 2480 | NETIF_F_HW_VLAN_CTAG_RX | |
2481 | NETIF_F_TSO | | 2481 | NETIF_F_TSO | |
2482 | NETIF_F_TSO6; | 2482 | NETIF_F_TSO6; |
2483 | netdev->features = netdev->hw_features | | 2483 | netdev->features = netdev->hw_features | |
2484 | NETIF_F_HW_VLAN_TX; | 2484 | NETIF_F_HW_VLAN_CTAG_TX; |
2485 | return 0; | 2485 | return 0; |
2486 | } | 2486 | } |
2487 | 2487 | ||
diff --git a/drivers/net/ethernet/atheros/atl1e/atl1e_main.c b/drivers/net/ethernet/atheros/atl1e/atl1e_main.c index d058d0061ed0..598a61151668 100644 --- a/drivers/net/ethernet/atheros/atl1e/atl1e_main.c +++ b/drivers/net/ethernet/atheros/atl1e/atl1e_main.c | |||
@@ -315,7 +315,7 @@ static void atl1e_set_multi(struct net_device *netdev) | |||
315 | 315 | ||
316 | static void __atl1e_vlan_mode(netdev_features_t features, u32 *mac_ctrl_data) | 316 | static void __atl1e_vlan_mode(netdev_features_t features, u32 *mac_ctrl_data) |
317 | { | 317 | { |
318 | if (features & NETIF_F_HW_VLAN_RX) { | 318 | if (features & NETIF_F_HW_VLAN_CTAG_RX) { |
319 | /* enable VLAN tag insert/strip */ | 319 | /* enable VLAN tag insert/strip */ |
320 | *mac_ctrl_data |= MAC_CTRL_RMV_VLAN; | 320 | *mac_ctrl_data |= MAC_CTRL_RMV_VLAN; |
321 | } else { | 321 | } else { |
@@ -378,10 +378,10 @@ static netdev_features_t atl1e_fix_features(struct net_device *netdev, | |||
378 | * Since there is no support for separate rx/tx vlan accel | 378 | * Since there is no support for separate rx/tx vlan accel |
379 | * enable/disable make sure tx flag is always in same state as rx. | 379 | * enable/disable make sure tx flag is always in same state as rx. |
380 | */ | 380 | */ |
381 | if (features & NETIF_F_HW_VLAN_RX) | 381 | if (features & NETIF_F_HW_VLAN_CTAG_RX) |
382 | features |= NETIF_F_HW_VLAN_TX; | 382 | features |= NETIF_F_HW_VLAN_CTAG_TX; |
383 | else | 383 | else |
384 | features &= ~NETIF_F_HW_VLAN_TX; | 384 | features &= ~NETIF_F_HW_VLAN_CTAG_TX; |
385 | 385 | ||
386 | return features; | 386 | return features; |
387 | } | 387 | } |
@@ -391,7 +391,7 @@ static int atl1e_set_features(struct net_device *netdev, | |||
391 | { | 391 | { |
392 | netdev_features_t changed = netdev->features ^ features; | 392 | netdev_features_t changed = netdev->features ^ features; |
393 | 393 | ||
394 | if (changed & NETIF_F_HW_VLAN_RX) | 394 | if (changed & NETIF_F_HW_VLAN_CTAG_RX) |
395 | atl1e_vlan_mode(netdev, features); | 395 | atl1e_vlan_mode(netdev, features); |
396 | 396 | ||
397 | return 0; | 397 | return 0; |
@@ -2198,9 +2198,9 @@ static int atl1e_init_netdev(struct net_device *netdev, struct pci_dev *pdev) | |||
2198 | atl1e_set_ethtool_ops(netdev); | 2198 | atl1e_set_ethtool_ops(netdev); |
2199 | 2199 | ||
2200 | netdev->hw_features = NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_TSO | | 2200 | netdev->hw_features = NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_TSO | |
2201 | NETIF_F_HW_VLAN_RX; | 2201 | NETIF_F_HW_VLAN_CTAG_RX; |
2202 | netdev->features = netdev->hw_features | NETIF_F_LLTX | | 2202 | netdev->features = netdev->hw_features | NETIF_F_LLTX | |
2203 | NETIF_F_HW_VLAN_TX; | 2203 | NETIF_F_HW_VLAN_CTAG_TX; |
2204 | 2204 | ||
2205 | return 0; | 2205 | return 0; |
2206 | } | 2206 | } |
diff --git a/drivers/net/ethernet/atheros/atlx/atl1.c b/drivers/net/ethernet/atheros/atlx/atl1.c index 8338013ab33d..fd7d85044e4a 100644 --- a/drivers/net/ethernet/atheros/atlx/atl1.c +++ b/drivers/net/ethernet/atheros/atlx/atl1.c | |||
@@ -3018,10 +3018,10 @@ static int atl1_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
3018 | 3018 | ||
3019 | netdev->features = NETIF_F_HW_CSUM; | 3019 | netdev->features = NETIF_F_HW_CSUM; |
3020 | netdev->features |= NETIF_F_SG; | 3020 | netdev->features |= NETIF_F_SG; |
3021 | netdev->features |= (NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX); | 3021 | netdev->features |= (NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX); |
3022 | 3022 | ||
3023 | netdev->hw_features = NETIF_F_HW_CSUM | NETIF_F_SG | NETIF_F_TSO | | 3023 | netdev->hw_features = NETIF_F_HW_CSUM | NETIF_F_SG | NETIF_F_TSO | |
3024 | NETIF_F_HW_VLAN_RX; | 3024 | NETIF_F_HW_VLAN_CTAG_RX; |
3025 | 3025 | ||
3026 | /* is this valid? see atl1_setup_mac_ctrl() */ | 3026 | /* is this valid? see atl1_setup_mac_ctrl() */ |
3027 | netdev->features |= NETIF_F_RXCSUM; | 3027 | netdev->features |= NETIF_F_RXCSUM; |
diff --git a/drivers/net/ethernet/atheros/atlx/atl2.c b/drivers/net/ethernet/atheros/atlx/atl2.c index a046b6ff847c..6b2c08a89b7e 100644 --- a/drivers/net/ethernet/atheros/atlx/atl2.c +++ b/drivers/net/ethernet/atheros/atlx/atl2.c | |||
@@ -363,7 +363,7 @@ static inline void atl2_irq_disable(struct atl2_adapter *adapter) | |||
363 | 363 | ||
364 | static void __atl2_vlan_mode(netdev_features_t features, u32 *ctrl) | 364 | static void __atl2_vlan_mode(netdev_features_t features, u32 *ctrl) |
365 | { | 365 | { |
366 | if (features & NETIF_F_HW_VLAN_RX) { | 366 | if (features & NETIF_F_HW_VLAN_CTAG_RX) { |
367 | /* enable VLAN tag insert/strip */ | 367 | /* enable VLAN tag insert/strip */ |
368 | *ctrl |= MAC_CTRL_RMV_VLAN; | 368 | *ctrl |= MAC_CTRL_RMV_VLAN; |
369 | } else { | 369 | } else { |
@@ -399,10 +399,10 @@ static netdev_features_t atl2_fix_features(struct net_device *netdev, | |||
399 | * Since there is no support for separate rx/tx vlan accel | 399 | * Since there is no support for separate rx/tx vlan accel |
400 | * enable/disable make sure tx flag is always in same state as rx. | 400 | * enable/disable make sure tx flag is always in same state as rx. |
401 | */ | 401 | */ |
402 | if (features & NETIF_F_HW_VLAN_RX) | 402 | if (features & NETIF_F_HW_VLAN_CTAG_RX) |
403 | features |= NETIF_F_HW_VLAN_TX; | 403 | features |= NETIF_F_HW_VLAN_CTAG_TX; |
404 | else | 404 | else |
405 | features &= ~NETIF_F_HW_VLAN_TX; | 405 | features &= ~NETIF_F_HW_VLAN_CTAG_TX; |
406 | 406 | ||
407 | return features; | 407 | return features; |
408 | } | 408 | } |
@@ -412,7 +412,7 @@ static int atl2_set_features(struct net_device *netdev, | |||
412 | { | 412 | { |
413 | netdev_features_t changed = netdev->features ^ features; | 413 | netdev_features_t changed = netdev->features ^ features; |
414 | 414 | ||
415 | if (changed & NETIF_F_HW_VLAN_RX) | 415 | if (changed & NETIF_F_HW_VLAN_CTAG_RX) |
416 | atl2_vlan_mode(netdev, features); | 416 | atl2_vlan_mode(netdev, features); |
417 | 417 | ||
418 | return 0; | 418 | return 0; |
@@ -887,7 +887,7 @@ static netdev_tx_t atl2_xmit_frame(struct sk_buff *skb, | |||
887 | skb->len-copy_len); | 887 | skb->len-copy_len); |
888 | offset = ((u32)(skb->len-copy_len + 3) & ~3); | 888 | offset = ((u32)(skb->len-copy_len + 3) & ~3); |
889 | } | 889 | } |
890 | #ifdef NETIF_F_HW_VLAN_TX | 890 | #ifdef NETIF_F_HW_VLAN_CTAG_TX |
891 | if (vlan_tx_tag_present(skb)) { | 891 | if (vlan_tx_tag_present(skb)) { |
892 | u16 vlan_tag = vlan_tx_tag_get(skb); | 892 | u16 vlan_tag = vlan_tx_tag_get(skb); |
893 | vlan_tag = (vlan_tag << 4) | | 893 | vlan_tag = (vlan_tag << 4) | |
@@ -1413,8 +1413,8 @@ static int atl2_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
1413 | 1413 | ||
1414 | err = -EIO; | 1414 | err = -EIO; |
1415 | 1415 | ||
1416 | netdev->hw_features = NETIF_F_SG | NETIF_F_HW_VLAN_RX; | 1416 | netdev->hw_features = NETIF_F_SG | NETIF_F_HW_VLAN_CTAG_RX; |
1417 | netdev->features |= (NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX); | 1417 | netdev->features |= (NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX); |
1418 | 1418 | ||
1419 | /* Init PHY as early as possible due to power saving issue */ | 1419 | /* Init PHY as early as possible due to power saving issue */ |
1420 | atl2_phy_init(&adapter->hw); | 1420 | atl2_phy_init(&adapter->hw); |
diff --git a/drivers/net/ethernet/atheros/atlx/atlx.c b/drivers/net/ethernet/atheros/atlx/atlx.c index f82eb1699464..46a622cceee4 100644 --- a/drivers/net/ethernet/atheros/atlx/atlx.c +++ b/drivers/net/ethernet/atheros/atlx/atlx.c | |||
@@ -220,7 +220,7 @@ static void atlx_link_chg_task(struct work_struct *work) | |||
220 | 220 | ||
221 | static void __atlx_vlan_mode(netdev_features_t features, u32 *ctrl) | 221 | static void __atlx_vlan_mode(netdev_features_t features, u32 *ctrl) |
222 | { | 222 | { |
223 | if (features & NETIF_F_HW_VLAN_RX) { | 223 | if (features & NETIF_F_HW_VLAN_CTAG_RX) { |
224 | /* enable VLAN tag insert/strip */ | 224 | /* enable VLAN tag insert/strip */ |
225 | *ctrl |= MAC_CTRL_RMV_VLAN; | 225 | *ctrl |= MAC_CTRL_RMV_VLAN; |
226 | } else { | 226 | } else { |
@@ -257,10 +257,10 @@ static netdev_features_t atlx_fix_features(struct net_device *netdev, | |||
257 | * Since there is no support for separate rx/tx vlan accel | 257 | * Since there is no support for separate rx/tx vlan accel |
258 | * enable/disable make sure tx flag is always in same state as rx. | 258 | * enable/disable make sure tx flag is always in same state as rx. |
259 | */ | 259 | */ |
260 | if (features & NETIF_F_HW_VLAN_RX) | 260 | if (features & NETIF_F_HW_VLAN_CTAG_RX) |
261 | features |= NETIF_F_HW_VLAN_TX; | 261 | features |= NETIF_F_HW_VLAN_CTAG_TX; |
262 | else | 262 | else |
263 | features &= ~NETIF_F_HW_VLAN_TX; | 263 | features &= ~NETIF_F_HW_VLAN_CTAG_TX; |
264 | 264 | ||
265 | return features; | 265 | return features; |
266 | } | 266 | } |
@@ -270,7 +270,7 @@ static int atlx_set_features(struct net_device *netdev, | |||
270 | { | 270 | { |
271 | netdev_features_t changed = netdev->features ^ features; | 271 | netdev_features_t changed = netdev->features ^ features; |
272 | 272 | ||
273 | if (changed & NETIF_F_HW_VLAN_RX) | 273 | if (changed & NETIF_F_HW_VLAN_CTAG_RX) |
274 | atlx_vlan_mode(netdev, features); | 274 | atlx_vlan_mode(netdev, features); |
275 | 275 | ||
276 | return 0; | 276 | return 0; |
diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c index f27b549b692d..42a8bc8df5dd 100644 --- a/drivers/net/ethernet/broadcom/bnx2.c +++ b/drivers/net/ethernet/broadcom/bnx2.c | |||
@@ -3553,7 +3553,7 @@ bnx2_set_rx_mode(struct net_device *dev) | |||
3553 | rx_mode = bp->rx_mode & ~(BNX2_EMAC_RX_MODE_PROMISCUOUS | | 3553 | rx_mode = bp->rx_mode & ~(BNX2_EMAC_RX_MODE_PROMISCUOUS | |
3554 | BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG); | 3554 | BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG); |
3555 | sort_mode = 1 | BNX2_RPM_SORT_USER0_BC_EN; | 3555 | sort_mode = 1 | BNX2_RPM_SORT_USER0_BC_EN; |
3556 | if (!(dev->features & NETIF_F_HW_VLAN_RX) && | 3556 | if (!(dev->features & NETIF_F_HW_VLAN_CTAG_RX) && |
3557 | (bp->flags & BNX2_FLAG_CAN_KEEP_VLAN)) | 3557 | (bp->flags & BNX2_FLAG_CAN_KEEP_VLAN)) |
3558 | rx_mode |= BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG; | 3558 | rx_mode |= BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG; |
3559 | if (dev->flags & IFF_PROMISC) { | 3559 | if (dev->flags & IFF_PROMISC) { |
@@ -7695,7 +7695,7 @@ bnx2_fix_features(struct net_device *dev, netdev_features_t features) | |||
7695 | struct bnx2 *bp = netdev_priv(dev); | 7695 | struct bnx2 *bp = netdev_priv(dev); |
7696 | 7696 | ||
7697 | if (!(bp->flags & BNX2_FLAG_CAN_KEEP_VLAN)) | 7697 | if (!(bp->flags & BNX2_FLAG_CAN_KEEP_VLAN)) |
7698 | features |= NETIF_F_HW_VLAN_RX; | 7698 | features |= NETIF_F_HW_VLAN_CTAG_RX; |
7699 | 7699 | ||
7700 | return features; | 7700 | return features; |
7701 | } | 7701 | } |
@@ -7706,12 +7706,12 @@ bnx2_set_features(struct net_device *dev, netdev_features_t features) | |||
7706 | struct bnx2 *bp = netdev_priv(dev); | 7706 | struct bnx2 *bp = netdev_priv(dev); |
7707 | 7707 | ||
7708 | /* TSO with VLAN tag won't work with current firmware */ | 7708 | /* TSO with VLAN tag won't work with current firmware */ |
7709 | if (features & NETIF_F_HW_VLAN_TX) | 7709 | if (features & NETIF_F_HW_VLAN_CTAG_TX) |
7710 | dev->vlan_features |= (dev->hw_features & NETIF_F_ALL_TSO); | 7710 | dev->vlan_features |= (dev->hw_features & NETIF_F_ALL_TSO); |
7711 | else | 7711 | else |
7712 | dev->vlan_features &= ~NETIF_F_ALL_TSO; | 7712 | dev->vlan_features &= ~NETIF_F_ALL_TSO; |
7713 | 7713 | ||
7714 | if ((!!(features & NETIF_F_HW_VLAN_RX) != | 7714 | if ((!!(features & NETIF_F_HW_VLAN_CTAG_RX) != |
7715 | !!(bp->rx_mode & BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG)) && | 7715 | !!(bp->rx_mode & BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG)) && |
7716 | netif_running(dev)) { | 7716 | netif_running(dev)) { |
7717 | bnx2_netif_stop(bp, false); | 7717 | bnx2_netif_stop(bp, false); |
@@ -8551,7 +8551,7 @@ bnx2_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
8551 | dev->hw_features |= NETIF_F_IPV6_CSUM | NETIF_F_TSO6; | 8551 | dev->hw_features |= NETIF_F_IPV6_CSUM | NETIF_F_TSO6; |
8552 | 8552 | ||
8553 | dev->vlan_features = dev->hw_features; | 8553 | dev->vlan_features = dev->hw_features; |
8554 | dev->hw_features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | 8554 | dev->hw_features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX; |
8555 | dev->features |= dev->hw_features; | 8555 | dev->features |= dev->hw_features; |
8556 | dev->priv_flags |= IFF_UNICAST_FLT; | 8556 | dev->priv_flags |= IFF_UNICAST_FLT; |
8557 | 8557 | ||
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c index fdfe33bc097b..1e60c5d139d1 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | |||
@@ -12027,7 +12027,7 @@ static int bnx2x_init_dev(struct bnx2x *bp, struct pci_dev *pdev, | |||
12027 | dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | | 12027 | dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | |
12028 | NETIF_F_TSO | NETIF_F_TSO_ECN | NETIF_F_TSO6 | | 12028 | NETIF_F_TSO | NETIF_F_TSO_ECN | NETIF_F_TSO6 | |
12029 | NETIF_F_RXCSUM | NETIF_F_LRO | NETIF_F_GRO | | 12029 | NETIF_F_RXCSUM | NETIF_F_LRO | NETIF_F_GRO | |
12030 | NETIF_F_RXHASH | NETIF_F_HW_VLAN_TX; | 12030 | NETIF_F_RXHASH | NETIF_F_HW_VLAN_CTAG_TX; |
12031 | if (!CHIP_IS_E1x(bp)) { | 12031 | if (!CHIP_IS_E1x(bp)) { |
12032 | dev->hw_features |= NETIF_F_GSO_GRE; | 12032 | dev->hw_features |= NETIF_F_GSO_GRE; |
12033 | dev->hw_enc_features = | 12033 | dev->hw_enc_features = |
@@ -12039,7 +12039,7 @@ static int bnx2x_init_dev(struct bnx2x *bp, struct pci_dev *pdev, | |||
12039 | dev->vlan_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | | 12039 | dev->vlan_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | |
12040 | NETIF_F_TSO | NETIF_F_TSO_ECN | NETIF_F_TSO6 | NETIF_F_HIGHDMA; | 12040 | NETIF_F_TSO | NETIF_F_TSO_ECN | NETIF_F_TSO6 | NETIF_F_HIGHDMA; |
12041 | 12041 | ||
12042 | dev->features |= dev->hw_features | NETIF_F_HW_VLAN_RX; | 12042 | dev->features |= dev->hw_features | NETIF_F_HW_VLAN_CTAG_RX; |
12043 | if (bp->flags & USING_DAC_FLAG) | 12043 | if (bp->flags & USING_DAC_FLAG) |
12044 | dev->features |= NETIF_F_HIGHDMA; | 12044 | dev->features |= NETIF_F_HIGHDMA; |
12045 | 12045 | ||
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c index 45719ddfde74..0c22c9a059c4 100644 --- a/drivers/net/ethernet/broadcom/tg3.c +++ b/drivers/net/ethernet/broadcom/tg3.c | |||
@@ -17197,7 +17197,7 @@ static int tg3_init_one(struct pci_dev *pdev, | |||
17197 | 17197 | ||
17198 | tg3_init_bufmgr_config(tp); | 17198 | tg3_init_bufmgr_config(tp); |
17199 | 17199 | ||
17200 | features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | 17200 | features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX; |
17201 | 17201 | ||
17202 | /* 5700 B0 chips do not support checksumming correctly due | 17202 | /* 5700 B0 chips do not support checksumming correctly due |
17203 | * to hardware bugs. | 17203 | * to hardware bugs. |
diff --git a/drivers/net/ethernet/brocade/bna/bnad.c b/drivers/net/ethernet/brocade/bna/bnad.c index d588f842d557..1d9d0371a743 100644 --- a/drivers/net/ethernet/brocade/bna/bnad.c +++ b/drivers/net/ethernet/brocade/bna/bnad.c | |||
@@ -3170,14 +3170,14 @@ bnad_netdev_init(struct bnad *bnad, bool using_dac) | |||
3170 | 3170 | ||
3171 | netdev->hw_features = NETIF_F_SG | NETIF_F_RXCSUM | | 3171 | netdev->hw_features = NETIF_F_SG | NETIF_F_RXCSUM | |
3172 | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | | 3172 | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | |
3173 | NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_HW_VLAN_TX; | 3173 | NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_HW_VLAN_CTAG_TX; |
3174 | 3174 | ||
3175 | netdev->vlan_features = NETIF_F_SG | NETIF_F_HIGHDMA | | 3175 | netdev->vlan_features = NETIF_F_SG | NETIF_F_HIGHDMA | |
3176 | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | | 3176 | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | |
3177 | NETIF_F_TSO | NETIF_F_TSO6; | 3177 | NETIF_F_TSO | NETIF_F_TSO6; |
3178 | 3178 | ||
3179 | netdev->features |= netdev->hw_features | | 3179 | netdev->features |= netdev->hw_features | |
3180 | NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER; | 3180 | NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_CTAG_FILTER; |
3181 | 3181 | ||
3182 | if (using_dac) | 3182 | if (using_dac) |
3183 | netdev->features |= NETIF_F_HIGHDMA; | 3183 | netdev->features |= NETIF_F_HIGHDMA; |
diff --git a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c index 20d2085f61c5..9624cfe7df57 100644 --- a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c +++ b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c | |||
@@ -856,10 +856,10 @@ static netdev_features_t t1_fix_features(struct net_device *dev, | |||
856 | * Since there is no support for separate rx/tx vlan accel | 856 | * Since there is no support for separate rx/tx vlan accel |
857 | * enable/disable make sure tx flag is always in same state as rx. | 857 | * enable/disable make sure tx flag is always in same state as rx. |
858 | */ | 858 | */ |
859 | if (features & NETIF_F_HW_VLAN_RX) | 859 | if (features & NETIF_F_HW_VLAN_CTAG_RX) |
860 | features |= NETIF_F_HW_VLAN_TX; | 860 | features |= NETIF_F_HW_VLAN_CTAG_TX; |
861 | else | 861 | else |
862 | features &= ~NETIF_F_HW_VLAN_TX; | 862 | features &= ~NETIF_F_HW_VLAN_CTAG_TX; |
863 | 863 | ||
864 | return features; | 864 | return features; |
865 | } | 865 | } |
@@ -869,7 +869,7 @@ static int t1_set_features(struct net_device *dev, netdev_features_t features) | |||
869 | netdev_features_t changed = dev->features ^ features; | 869 | netdev_features_t changed = dev->features ^ features; |
870 | struct adapter *adapter = dev->ml_priv; | 870 | struct adapter *adapter = dev->ml_priv; |
871 | 871 | ||
872 | if (changed & NETIF_F_HW_VLAN_RX) | 872 | if (changed & NETIF_F_HW_VLAN_CTAG_RX) |
873 | t1_vlan_mode(adapter, features); | 873 | t1_vlan_mode(adapter, features); |
874 | 874 | ||
875 | return 0; | 875 | return 0; |
@@ -1085,8 +1085,9 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
1085 | netdev->features |= NETIF_F_HIGHDMA; | 1085 | netdev->features |= NETIF_F_HIGHDMA; |
1086 | if (vlan_tso_capable(adapter)) { | 1086 | if (vlan_tso_capable(adapter)) { |
1087 | netdev->features |= | 1087 | netdev->features |= |
1088 | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | 1088 | NETIF_F_HW_VLAN_CTAG_TX | |
1089 | netdev->hw_features |= NETIF_F_HW_VLAN_RX; | 1089 | NETIF_F_HW_VLAN_CTAG_RX; |
1090 | netdev->hw_features |= NETIF_F_HW_VLAN_CTAG_RX; | ||
1090 | 1091 | ||
1091 | /* T204: disable TSO */ | 1092 | /* T204: disable TSO */ |
1092 | if (!(is_T2(adapter)) || bi->port_number != 4) { | 1093 | if (!(is_T2(adapter)) || bi->port_number != 4) { |
diff --git a/drivers/net/ethernet/chelsio/cxgb/sge.c b/drivers/net/ethernet/chelsio/cxgb/sge.c index 55fe8c9f0484..f85e0659432b 100644 --- a/drivers/net/ethernet/chelsio/cxgb/sge.c +++ b/drivers/net/ethernet/chelsio/cxgb/sge.c | |||
@@ -734,7 +734,7 @@ void t1_vlan_mode(struct adapter *adapter, netdev_features_t features) | |||
734 | { | 734 | { |
735 | struct sge *sge = adapter->sge; | 735 | struct sge *sge = adapter->sge; |
736 | 736 | ||
737 | if (features & NETIF_F_HW_VLAN_RX) | 737 | if (features & NETIF_F_HW_VLAN_CTAG_RX) |
738 | sge->sge_control |= F_VLAN_XTRACT; | 738 | sge->sge_control |= F_VLAN_XTRACT; |
739 | else | 739 | else |
740 | sge->sge_control &= ~F_VLAN_XTRACT; | 740 | sge->sge_control &= ~F_VLAN_XTRACT; |
diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c index 2b5e62193cea..71497e835f42 100644 --- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c +++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c | |||
@@ -1181,14 +1181,15 @@ static void cxgb_vlan_mode(struct net_device *dev, netdev_features_t features) | |||
1181 | 1181 | ||
1182 | if (adapter->params.rev > 0) { | 1182 | if (adapter->params.rev > 0) { |
1183 | t3_set_vlan_accel(adapter, 1 << pi->port_id, | 1183 | t3_set_vlan_accel(adapter, 1 << pi->port_id, |
1184 | features & NETIF_F_HW_VLAN_RX); | 1184 | features & NETIF_F_HW_VLAN_CTAG_RX); |
1185 | } else { | 1185 | } else { |
1186 | /* single control for all ports */ | 1186 | /* single control for all ports */ |
1187 | unsigned int i, have_vlans = features & NETIF_F_HW_VLAN_RX; | 1187 | unsigned int i, have_vlans = features & NETIF_F_HW_VLAN_CTAG_RX; |
1188 | 1188 | ||
1189 | for_each_port(adapter, i) | 1189 | for_each_port(adapter, i) |
1190 | have_vlans |= | 1190 | have_vlans |= |
1191 | adapter->port[i]->features & NETIF_F_HW_VLAN_RX; | 1191 | adapter->port[i]->features & |
1192 | NETIF_F_HW_VLAN_CTAG_RX; | ||
1192 | 1193 | ||
1193 | t3_set_vlan_accel(adapter, 1, have_vlans); | 1194 | t3_set_vlan_accel(adapter, 1, have_vlans); |
1194 | } | 1195 | } |
@@ -2563,10 +2564,10 @@ static netdev_features_t cxgb_fix_features(struct net_device *dev, | |||
2563 | * Since there is no support for separate rx/tx vlan accel | 2564 | * Since there is no support for separate rx/tx vlan accel |
2564 | * enable/disable make sure tx flag is always in same state as rx. | 2565 | * enable/disable make sure tx flag is always in same state as rx. |
2565 | */ | 2566 | */ |
2566 | if (features & NETIF_F_HW_VLAN_RX) | 2567 | if (features & NETIF_F_HW_VLAN_CTAG_RX) |
2567 | features |= NETIF_F_HW_VLAN_TX; | 2568 | features |= NETIF_F_HW_VLAN_CTAG_TX; |
2568 | else | 2569 | else |
2569 | features &= ~NETIF_F_HW_VLAN_TX; | 2570 | features &= ~NETIF_F_HW_VLAN_CTAG_TX; |
2570 | 2571 | ||
2571 | return features; | 2572 | return features; |
2572 | } | 2573 | } |
@@ -2575,7 +2576,7 @@ static int cxgb_set_features(struct net_device *dev, netdev_features_t features) | |||
2575 | { | 2576 | { |
2576 | netdev_features_t changed = dev->features ^ features; | 2577 | netdev_features_t changed = dev->features ^ features; |
2577 | 2578 | ||
2578 | if (changed & NETIF_F_HW_VLAN_RX) | 2579 | if (changed & NETIF_F_HW_VLAN_CTAG_RX) |
2579 | cxgb_vlan_mode(dev, features); | 2580 | cxgb_vlan_mode(dev, features); |
2580 | 2581 | ||
2581 | return 0; | 2582 | return 0; |
@@ -3288,8 +3289,9 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
3288 | netdev->mem_start = mmio_start; | 3289 | netdev->mem_start = mmio_start; |
3289 | netdev->mem_end = mmio_start + mmio_len - 1; | 3290 | netdev->mem_end = mmio_start + mmio_len - 1; |
3290 | netdev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | | 3291 | netdev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | |
3291 | NETIF_F_TSO | NETIF_F_RXCSUM | NETIF_F_HW_VLAN_RX; | 3292 | NETIF_F_TSO | NETIF_F_RXCSUM | NETIF_F_HW_VLAN_CTAG_RX; |
3292 | netdev->features |= netdev->hw_features | NETIF_F_HW_VLAN_TX; | 3293 | netdev->features |= netdev->hw_features | |
3294 | NETIF_F_HW_VLAN_CTAG_TX; | ||
3293 | netdev->vlan_features |= netdev->features & VLAN_FEAT; | 3295 | netdev->vlan_features |= netdev->features & VLAN_FEAT; |
3294 | if (pci_using_dac) | 3296 | if (pci_using_dac) |
3295 | netdev->features |= NETIF_F_HIGHDMA; | 3297 | netdev->features |= NETIF_F_HIGHDMA; |
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c index e76cf035100b..6a6a01af75fd 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | |||
@@ -559,7 +559,7 @@ static int link_start(struct net_device *dev) | |||
559 | * that step explicitly. | 559 | * that step explicitly. |
560 | */ | 560 | */ |
561 | ret = t4_set_rxmode(pi->adapter, mb, pi->viid, dev->mtu, -1, -1, -1, | 561 | ret = t4_set_rxmode(pi->adapter, mb, pi->viid, dev->mtu, -1, -1, -1, |
562 | !!(dev->features & NETIF_F_HW_VLAN_RX), true); | 562 | !!(dev->features & NETIF_F_HW_VLAN_CTAG_RX), true); |
563 | if (ret == 0) { | 563 | if (ret == 0) { |
564 | ret = t4_change_mac(pi->adapter, mb, pi->viid, | 564 | ret = t4_change_mac(pi->adapter, mb, pi->viid, |
565 | pi->xact_addr_filt, dev->dev_addr, true, | 565 | pi->xact_addr_filt, dev->dev_addr, true, |
@@ -2722,14 +2722,14 @@ static int cxgb_set_features(struct net_device *dev, netdev_features_t features) | |||
2722 | netdev_features_t changed = dev->features ^ features; | 2722 | netdev_features_t changed = dev->features ^ features; |
2723 | int err; | 2723 | int err; |
2724 | 2724 | ||
2725 | if (!(changed & NETIF_F_HW_VLAN_RX)) | 2725 | if (!(changed & NETIF_F_HW_VLAN_CTAG_RX)) |
2726 | return 0; | 2726 | return 0; |
2727 | 2727 | ||
2728 | err = t4_set_rxmode(pi->adapter, pi->adapter->fn, pi->viid, -1, | 2728 | err = t4_set_rxmode(pi->adapter, pi->adapter->fn, pi->viid, -1, |
2729 | -1, -1, -1, | 2729 | -1, -1, -1, |
2730 | !!(features & NETIF_F_HW_VLAN_RX), true); | 2730 | !!(features & NETIF_F_HW_VLAN_CTAG_RX), true); |
2731 | if (unlikely(err)) | 2731 | if (unlikely(err)) |
2732 | dev->features = features ^ NETIF_F_HW_VLAN_RX; | 2732 | dev->features = features ^ NETIF_F_HW_VLAN_CTAG_RX; |
2733 | return err; | 2733 | return err; |
2734 | } | 2734 | } |
2735 | 2735 | ||
@@ -5628,7 +5628,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
5628 | netdev->hw_features = NETIF_F_SG | TSO_FLAGS | | 5628 | netdev->hw_features = NETIF_F_SG | TSO_FLAGS | |
5629 | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | | 5629 | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | |
5630 | NETIF_F_RXCSUM | NETIF_F_RXHASH | | 5630 | NETIF_F_RXCSUM | NETIF_F_RXHASH | |
5631 | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | 5631 | NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX; |
5632 | if (highdma) | 5632 | if (highdma) |
5633 | netdev->hw_features |= NETIF_F_HIGHDMA; | 5633 | netdev->hw_features |= NETIF_F_HIGHDMA; |
5634 | netdev->features |= netdev->hw_features; | 5634 | netdev->features |= netdev->hw_features; |
diff --git a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c index 7fcac2003769..73aef76a526c 100644 --- a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c | |||
@@ -1100,10 +1100,10 @@ static netdev_features_t cxgb4vf_fix_features(struct net_device *dev, | |||
1100 | * Since there is no support for separate rx/tx vlan accel | 1100 | * Since there is no support for separate rx/tx vlan accel |
1101 | * enable/disable make sure tx flag is always in same state as rx. | 1101 | * enable/disable make sure tx flag is always in same state as rx. |
1102 | */ | 1102 | */ |
1103 | if (features & NETIF_F_HW_VLAN_RX) | 1103 | if (features & NETIF_F_HW_VLAN_CTAG_RX) |
1104 | features |= NETIF_F_HW_VLAN_TX; | 1104 | features |= NETIF_F_HW_VLAN_CTAG_TX; |
1105 | else | 1105 | else |
1106 | features &= ~NETIF_F_HW_VLAN_TX; | 1106 | features &= ~NETIF_F_HW_VLAN_CTAG_TX; |
1107 | 1107 | ||
1108 | return features; | 1108 | return features; |
1109 | } | 1109 | } |
@@ -1114,9 +1114,9 @@ static int cxgb4vf_set_features(struct net_device *dev, | |||
1114 | struct port_info *pi = netdev_priv(dev); | 1114 | struct port_info *pi = netdev_priv(dev); |
1115 | netdev_features_t changed = dev->features ^ features; | 1115 | netdev_features_t changed = dev->features ^ features; |
1116 | 1116 | ||
1117 | if (changed & NETIF_F_HW_VLAN_RX) | 1117 | if (changed & NETIF_F_HW_VLAN_CTAG_RX) |
1118 | t4vf_set_rxmode(pi->adapter, pi->viid, -1, -1, -1, -1, | 1118 | t4vf_set_rxmode(pi->adapter, pi->viid, -1, -1, -1, -1, |
1119 | features & NETIF_F_HW_VLAN_TX, 0); | 1119 | features & NETIF_F_HW_VLAN_CTAG_TX, 0); |
1120 | 1120 | ||
1121 | return 0; | 1121 | return 0; |
1122 | } | 1122 | } |
@@ -2623,11 +2623,12 @@ static int cxgb4vf_pci_probe(struct pci_dev *pdev, | |||
2623 | 2623 | ||
2624 | netdev->hw_features = NETIF_F_SG | TSO_FLAGS | | 2624 | netdev->hw_features = NETIF_F_SG | TSO_FLAGS | |
2625 | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | | 2625 | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | |
2626 | NETIF_F_HW_VLAN_RX | NETIF_F_RXCSUM; | 2626 | NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_RXCSUM; |
2627 | netdev->vlan_features = NETIF_F_SG | TSO_FLAGS | | 2627 | netdev->vlan_features = NETIF_F_SG | TSO_FLAGS | |
2628 | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | | 2628 | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | |
2629 | NETIF_F_HIGHDMA; | 2629 | NETIF_F_HIGHDMA; |
2630 | netdev->features = netdev->hw_features | NETIF_F_HW_VLAN_TX; | 2630 | netdev->features = netdev->hw_features | |
2631 | NETIF_F_HW_VLAN_CTAG_TX; | ||
2631 | if (pci_using_dac) | 2632 | if (pci_using_dac) |
2632 | netdev->features |= NETIF_F_HIGHDMA; | 2633 | netdev->features |= NETIF_F_HIGHDMA; |
2633 | 2634 | ||
diff --git a/drivers/net/ethernet/cisco/enic/enic_main.c b/drivers/net/ethernet/cisco/enic/enic_main.c index ec1a233622c6..05c1e59b6bff 100644 --- a/drivers/net/ethernet/cisco/enic/enic_main.c +++ b/drivers/net/ethernet/cisco/enic/enic_main.c | |||
@@ -2496,9 +2496,9 @@ static int enic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
2496 | netdev->watchdog_timeo = 2 * HZ; | 2496 | netdev->watchdog_timeo = 2 * HZ; |
2497 | netdev->ethtool_ops = &enic_ethtool_ops; | 2497 | netdev->ethtool_ops = &enic_ethtool_ops; |
2498 | 2498 | ||
2499 | netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | 2499 | netdev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX; |
2500 | if (ENIC_SETTING(enic, LOOP)) { | 2500 | if (ENIC_SETTING(enic, LOOP)) { |
2501 | netdev->features &= ~NETIF_F_HW_VLAN_TX; | 2501 | netdev->features &= ~NETIF_F_HW_VLAN_CTAG_TX; |
2502 | enic->loop_enable = 1; | 2502 | enic->loop_enable = 1; |
2503 | enic->loop_tag = enic->config.loop_tag; | 2503 | enic->loop_tag = enic->config.loop_tag; |
2504 | dev_info(dev, "loopback tag=0x%04x\n", enic->loop_tag); | 2504 | dev_info(dev, "loopback tag=0x%04x\n", enic->loop_tag); |
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index 536afa2fb94c..bde26d4d52ec 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c | |||
@@ -3663,12 +3663,12 @@ static void be_netdev_init(struct net_device *netdev) | |||
3663 | 3663 | ||
3664 | netdev->hw_features |= NETIF_F_SG | NETIF_F_TSO | NETIF_F_TSO6 | | 3664 | netdev->hw_features |= NETIF_F_SG | NETIF_F_TSO | NETIF_F_TSO6 | |
3665 | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM | | 3665 | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM | |
3666 | NETIF_F_HW_VLAN_TX; | 3666 | NETIF_F_HW_VLAN_CTAG_TX; |
3667 | if (be_multi_rxq(adapter)) | 3667 | if (be_multi_rxq(adapter)) |
3668 | netdev->hw_features |= NETIF_F_RXHASH; | 3668 | netdev->hw_features |= NETIF_F_RXHASH; |
3669 | 3669 | ||
3670 | netdev->features |= netdev->hw_features | | 3670 | netdev->features |= netdev->hw_features | |
3671 | NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER; | 3671 | NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_CTAG_FILTER; |
3672 | 3672 | ||
3673 | netdev->vlan_features |= NETIF_F_SG | NETIF_F_TSO | NETIF_F_TSO6 | | 3673 | netdev->vlan_features |= NETIF_F_SG | NETIF_F_TSO | NETIF_F_TSO6 | |
3674 | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM; | 3674 | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM; |
diff --git a/drivers/net/ethernet/freescale/gianfar.c b/drivers/net/ethernet/freescale/gianfar.c index 96fbe3548243..51555445ce2f 100644 --- a/drivers/net/ethernet/freescale/gianfar.c +++ b/drivers/net/ethernet/freescale/gianfar.c | |||
@@ -386,7 +386,7 @@ static void gfar_init_mac(struct net_device *ndev) | |||
386 | priv->uses_rxfcb = 1; | 386 | priv->uses_rxfcb = 1; |
387 | } | 387 | } |
388 | 388 | ||
389 | if (ndev->features & NETIF_F_HW_VLAN_RX) { | 389 | if (ndev->features & NETIF_F_HW_VLAN_CTAG_RX) { |
390 | rctrl |= RCTRL_VLEX | RCTRL_PRSDEP_INIT; | 390 | rctrl |= RCTRL_VLEX | RCTRL_PRSDEP_INIT; |
391 | priv->uses_rxfcb = 1; | 391 | priv->uses_rxfcb = 1; |
392 | } | 392 | } |
@@ -1050,8 +1050,9 @@ static int gfar_probe(struct platform_device *ofdev) | |||
1050 | } | 1050 | } |
1051 | 1051 | ||
1052 | if (priv->device_flags & FSL_GIANFAR_DEV_HAS_VLAN) { | 1052 | if (priv->device_flags & FSL_GIANFAR_DEV_HAS_VLAN) { |
1053 | dev->hw_features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | 1053 | dev->hw_features |= NETIF_F_HW_VLAN_CTAG_TX | |
1054 | dev->features |= NETIF_F_HW_VLAN_RX; | 1054 | NETIF_F_HW_VLAN_CTAG_RX; |
1055 | dev->features |= NETIF_F_HW_VLAN_CTAG_RX; | ||
1055 | } | 1056 | } |
1056 | 1057 | ||
1057 | if (priv->device_flags & FSL_GIANFAR_DEV_HAS_EXTENDED_HASH) { | 1058 | if (priv->device_flags & FSL_GIANFAR_DEV_HAS_EXTENDED_HASH) { |
@@ -2348,7 +2349,7 @@ void gfar_vlan_mode(struct net_device *dev, netdev_features_t features) | |||
2348 | local_irq_save(flags); | 2349 | local_irq_save(flags); |
2349 | lock_rx_qs(priv); | 2350 | lock_rx_qs(priv); |
2350 | 2351 | ||
2351 | if (features & NETIF_F_HW_VLAN_TX) { | 2352 | if (features & NETIF_F_HW_VLAN_CTAG_TX) { |
2352 | /* Enable VLAN tag insertion */ | 2353 | /* Enable VLAN tag insertion */ |
2353 | tempval = gfar_read(®s->tctrl); | 2354 | tempval = gfar_read(®s->tctrl); |
2354 | tempval |= TCTRL_VLINS; | 2355 | tempval |= TCTRL_VLINS; |
@@ -2360,7 +2361,7 @@ void gfar_vlan_mode(struct net_device *dev, netdev_features_t features) | |||
2360 | gfar_write(®s->tctrl, tempval); | 2361 | gfar_write(®s->tctrl, tempval); |
2361 | } | 2362 | } |
2362 | 2363 | ||
2363 | if (features & NETIF_F_HW_VLAN_RX) { | 2364 | if (features & NETIF_F_HW_VLAN_CTAG_RX) { |
2364 | /* Enable VLAN tag extraction */ | 2365 | /* Enable VLAN tag extraction */ |
2365 | tempval = gfar_read(®s->rctrl); | 2366 | tempval = gfar_read(®s->rctrl); |
2366 | tempval |= (RCTRL_VLEX | RCTRL_PRSDEP_INIT); | 2367 | tempval |= (RCTRL_VLEX | RCTRL_PRSDEP_INIT); |
@@ -2724,11 +2725,11 @@ static void gfar_process_frame(struct net_device *dev, struct sk_buff *skb, | |||
2724 | /* Tell the skb what kind of packet this is */ | 2725 | /* Tell the skb what kind of packet this is */ |
2725 | skb->protocol = eth_type_trans(skb, dev); | 2726 | skb->protocol = eth_type_trans(skb, dev); |
2726 | 2727 | ||
2727 | /* There's need to check for NETIF_F_HW_VLAN_RX here. | 2728 | /* There's need to check for NETIF_F_HW_VLAN_CTAG_RX here. |
2728 | * Even if vlan rx accel is disabled, on some chips | 2729 | * Even if vlan rx accel is disabled, on some chips |
2729 | * RXFCB_VLN is pseudo randomly set. | 2730 | * RXFCB_VLN is pseudo randomly set. |
2730 | */ | 2731 | */ |
2731 | if (dev->features & NETIF_F_HW_VLAN_RX && | 2732 | if (dev->features & NETIF_F_HW_VLAN_CTAG_RX && |
2732 | fcb->flags & RXFCB_VLN) | 2733 | fcb->flags & RXFCB_VLN) |
2733 | __vlan_hwaccel_put_tag(skb, fcb->vlctl); | 2734 | __vlan_hwaccel_put_tag(skb, fcb->vlctl); |
2734 | 2735 | ||
diff --git a/drivers/net/ethernet/freescale/gianfar_ethtool.c b/drivers/net/ethernet/freescale/gianfar_ethtool.c index 083603f6bec0..21cd88124ca9 100644 --- a/drivers/net/ethernet/freescale/gianfar_ethtool.c +++ b/drivers/net/ethernet/freescale/gianfar_ethtool.c | |||
@@ -542,7 +542,7 @@ int gfar_set_features(struct net_device *dev, netdev_features_t features) | |||
542 | int err = 0, i = 0; | 542 | int err = 0, i = 0; |
543 | netdev_features_t changed = dev->features ^ features; | 543 | netdev_features_t changed = dev->features ^ features; |
544 | 544 | ||
545 | if (changed & (NETIF_F_HW_VLAN_TX|NETIF_F_HW_VLAN_RX)) | 545 | if (changed & (NETIF_F_HW_VLAN_CTAG_TX|NETIF_F_HW_VLAN_CTAG_RX)) |
546 | gfar_vlan_mode(dev, features); | 546 | gfar_vlan_mode(dev, features); |
547 | 547 | ||
548 | if (!(changed & NETIF_F_RXCSUM)) | 548 | if (!(changed & NETIF_F_RXCSUM)) |
diff --git a/drivers/net/ethernet/ibm/ehea/ehea_main.c b/drivers/net/ethernet/ibm/ehea/ehea_main.c index 029633434474..9c9fa745ff82 100644 --- a/drivers/net/ethernet/ibm/ehea/ehea_main.c +++ b/drivers/net/ethernet/ibm/ehea/ehea_main.c | |||
@@ -3021,11 +3021,11 @@ static struct ehea_port *ehea_setup_single_port(struct ehea_adapter *adapter, | |||
3021 | ehea_set_ethtool_ops(dev); | 3021 | ehea_set_ethtool_ops(dev); |
3022 | 3022 | ||
3023 | dev->hw_features = NETIF_F_SG | NETIF_F_TSO | 3023 | dev->hw_features = NETIF_F_SG | NETIF_F_TSO |
3024 | | NETIF_F_IP_CSUM | NETIF_F_HW_VLAN_TX; | 3024 | | NETIF_F_IP_CSUM | NETIF_F_HW_VLAN_CTAG_TX; |
3025 | dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_TSO | 3025 | dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_TSO |
3026 | | NETIF_F_HIGHDMA | NETIF_F_IP_CSUM | NETIF_F_HW_VLAN_TX | 3026 | | NETIF_F_HIGHDMA | NETIF_F_IP_CSUM | |
3027 | | NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER | 3027 | | NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX | |
3028 | | NETIF_F_RXCSUM; | 3028 | | NETIF_F_HW_VLAN_CTAG_FILTER | NETIF_F_RXCSUM; |
3029 | dev->vlan_features = NETIF_F_SG | NETIF_F_TSO | NETIF_F_HIGHDMA | | 3029 | dev->vlan_features = NETIF_F_SG | NETIF_F_TSO | NETIF_F_HIGHDMA | |
3030 | NETIF_F_IP_CSUM; | 3030 | NETIF_F_IP_CSUM; |
3031 | dev->watchdog_timeo = EHEA_WATCH_DOG_TIMEOUT; | 3031 | dev->watchdog_timeo = EHEA_WATCH_DOG_TIMEOUT; |
diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c index d98e1d0996d4..8d0d0d420c21 100644 --- a/drivers/net/ethernet/intel/e1000/e1000_main.c +++ b/drivers/net/ethernet/intel/e1000/e1000_main.c | |||
@@ -809,10 +809,10 @@ static netdev_features_t e1000_fix_features(struct net_device *netdev, | |||
809 | /* Since there is no support for separate Rx/Tx vlan accel | 809 | /* Since there is no support for separate Rx/Tx vlan accel |
810 | * enable/disable make sure Tx flag is always in same state as Rx. | 810 | * enable/disable make sure Tx flag is always in same state as Rx. |
811 | */ | 811 | */ |
812 | if (features & NETIF_F_HW_VLAN_RX) | 812 | if (features & NETIF_F_HW_VLAN_CTAG_RX) |
813 | features |= NETIF_F_HW_VLAN_TX; | 813 | features |= NETIF_F_HW_VLAN_CTAG_TX; |
814 | else | 814 | else |
815 | features &= ~NETIF_F_HW_VLAN_TX; | 815 | features &= ~NETIF_F_HW_VLAN_CTAG_TX; |
816 | 816 | ||
817 | return features; | 817 | return features; |
818 | } | 818 | } |
@@ -823,7 +823,7 @@ static int e1000_set_features(struct net_device *netdev, | |||
823 | struct e1000_adapter *adapter = netdev_priv(netdev); | 823 | struct e1000_adapter *adapter = netdev_priv(netdev); |
824 | netdev_features_t changed = features ^ netdev->features; | 824 | netdev_features_t changed = features ^ netdev->features; |
825 | 825 | ||
826 | if (changed & NETIF_F_HW_VLAN_RX) | 826 | if (changed & NETIF_F_HW_VLAN_CTAG_RX) |
827 | e1000_vlan_mode(netdev, features); | 827 | e1000_vlan_mode(netdev, features); |
828 | 828 | ||
829 | if (!(changed & (NETIF_F_RXCSUM | NETIF_F_RXALL))) | 829 | if (!(changed & (NETIF_F_RXCSUM | NETIF_F_RXALL))) |
@@ -1058,9 +1058,9 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
1058 | if (hw->mac_type >= e1000_82543) { | 1058 | if (hw->mac_type >= e1000_82543) { |
1059 | netdev->hw_features = NETIF_F_SG | | 1059 | netdev->hw_features = NETIF_F_SG | |
1060 | NETIF_F_HW_CSUM | | 1060 | NETIF_F_HW_CSUM | |
1061 | NETIF_F_HW_VLAN_RX; | 1061 | NETIF_F_HW_VLAN_CTAG_RX; |
1062 | netdev->features = NETIF_F_HW_VLAN_TX | | 1062 | netdev->features = NETIF_F_HW_VLAN_CTAG_TX | |
1063 | NETIF_F_HW_VLAN_FILTER; | 1063 | NETIF_F_HW_VLAN_CTAG_FILTER; |
1064 | } | 1064 | } |
1065 | 1065 | ||
1066 | if ((hw->mac_type >= e1000_82544) && | 1066 | if ((hw->mac_type >= e1000_82544) && |
@@ -4785,7 +4785,7 @@ static void __e1000_vlan_mode(struct e1000_adapter *adapter, | |||
4785 | u32 ctrl; | 4785 | u32 ctrl; |
4786 | 4786 | ||
4787 | ctrl = er32(CTRL); | 4787 | ctrl = er32(CTRL); |
4788 | if (features & NETIF_F_HW_VLAN_RX) { | 4788 | if (features & NETIF_F_HW_VLAN_CTAG_RX) { |
4789 | /* enable VLAN tag insert/strip */ | 4789 | /* enable VLAN tag insert/strip */ |
4790 | ctrl |= E1000_CTRL_VME; | 4790 | ctrl |= E1000_CTRL_VME; |
4791 | } else { | 4791 | } else { |
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index b18fad5b579e..a2e7db33bf9d 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c | |||
@@ -3373,7 +3373,7 @@ static void e1000e_set_rx_mode(struct net_device *netdev) | |||
3373 | 3373 | ||
3374 | ew32(RCTL, rctl); | 3374 | ew32(RCTL, rctl); |
3375 | 3375 | ||
3376 | if (netdev->features & NETIF_F_HW_VLAN_RX) | 3376 | if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX) |
3377 | e1000e_vlan_strip_enable(adapter); | 3377 | e1000e_vlan_strip_enable(adapter); |
3378 | else | 3378 | else |
3379 | e1000e_vlan_strip_disable(adapter); | 3379 | e1000e_vlan_strip_disable(adapter); |
@@ -6418,7 +6418,7 @@ static int e1000_set_features(struct net_device *netdev, | |||
6418 | if (changed & (NETIF_F_TSO | NETIF_F_TSO6)) | 6418 | if (changed & (NETIF_F_TSO | NETIF_F_TSO6)) |
6419 | adapter->flags |= FLAG_TSO_FORCE; | 6419 | adapter->flags |= FLAG_TSO_FORCE; |
6420 | 6420 | ||
6421 | if (!(changed & (NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_TX | | 6421 | if (!(changed & (NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_CTAG_TX | |
6422 | NETIF_F_RXCSUM | NETIF_F_RXHASH | NETIF_F_RXFCS | | 6422 | NETIF_F_RXCSUM | NETIF_F_RXHASH | NETIF_F_RXFCS | |
6423 | NETIF_F_RXALL))) | 6423 | NETIF_F_RXALL))) |
6424 | return 0; | 6424 | return 0; |
@@ -6629,8 +6629,8 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
6629 | 6629 | ||
6630 | /* Set initial default active device features */ | 6630 | /* Set initial default active device features */ |
6631 | netdev->features = (NETIF_F_SG | | 6631 | netdev->features = (NETIF_F_SG | |
6632 | NETIF_F_HW_VLAN_RX | | 6632 | NETIF_F_HW_VLAN_CTAG_RX | |
6633 | NETIF_F_HW_VLAN_TX | | 6633 | NETIF_F_HW_VLAN_CTAG_TX | |
6634 | NETIF_F_TSO | | 6634 | NETIF_F_TSO | |
6635 | NETIF_F_TSO6 | | 6635 | NETIF_F_TSO6 | |
6636 | NETIF_F_RXHASH | | 6636 | NETIF_F_RXHASH | |
@@ -6644,7 +6644,7 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
6644 | netdev->hw_features |= NETIF_F_RXALL; | 6644 | netdev->hw_features |= NETIF_F_RXALL; |
6645 | 6645 | ||
6646 | if (adapter->flags & FLAG_HAS_HW_VLAN_FILTER) | 6646 | if (adapter->flags & FLAG_HAS_HW_VLAN_FILTER) |
6647 | netdev->features |= NETIF_F_HW_VLAN_FILTER; | 6647 | netdev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; |
6648 | 6648 | ||
6649 | netdev->vlan_features |= (NETIF_F_SG | | 6649 | netdev->vlan_features |= (NETIF_F_SG | |
6650 | NETIF_F_TSO | | 6650 | NETIF_F_TSO | |
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 38590252be64..b0b1777c0af6 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c | |||
@@ -1860,10 +1860,10 @@ static netdev_features_t igb_fix_features(struct net_device *netdev, | |||
1860 | /* Since there is no support for separate Rx/Tx vlan accel | 1860 | /* Since there is no support for separate Rx/Tx vlan accel |
1861 | * enable/disable make sure Tx flag is always in same state as Rx. | 1861 | * enable/disable make sure Tx flag is always in same state as Rx. |
1862 | */ | 1862 | */ |
1863 | if (features & NETIF_F_HW_VLAN_RX) | 1863 | if (features & NETIF_F_HW_VLAN_CTAG_RX) |
1864 | features |= NETIF_F_HW_VLAN_TX; | 1864 | features |= NETIF_F_HW_VLAN_CTAG_TX; |
1865 | else | 1865 | else |
1866 | features &= ~NETIF_F_HW_VLAN_TX; | 1866 | features &= ~NETIF_F_HW_VLAN_CTAG_TX; |
1867 | 1867 | ||
1868 | return features; | 1868 | return features; |
1869 | } | 1869 | } |
@@ -1874,7 +1874,7 @@ static int igb_set_features(struct net_device *netdev, | |||
1874 | netdev_features_t changed = netdev->features ^ features; | 1874 | netdev_features_t changed = netdev->features ^ features; |
1875 | struct igb_adapter *adapter = netdev_priv(netdev); | 1875 | struct igb_adapter *adapter = netdev_priv(netdev); |
1876 | 1876 | ||
1877 | if (changed & NETIF_F_HW_VLAN_RX) | 1877 | if (changed & NETIF_F_HW_VLAN_CTAG_RX) |
1878 | igb_vlan_mode(netdev, features); | 1878 | igb_vlan_mode(netdev, features); |
1879 | 1879 | ||
1880 | if (!(changed & NETIF_F_RXALL)) | 1880 | if (!(changed & NETIF_F_RXALL)) |
@@ -2127,15 +2127,15 @@ static int igb_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
2127 | NETIF_F_TSO6 | | 2127 | NETIF_F_TSO6 | |
2128 | NETIF_F_RXHASH | | 2128 | NETIF_F_RXHASH | |
2129 | NETIF_F_RXCSUM | | 2129 | NETIF_F_RXCSUM | |
2130 | NETIF_F_HW_VLAN_RX | | 2130 | NETIF_F_HW_VLAN_CTAG_RX | |
2131 | NETIF_F_HW_VLAN_TX; | 2131 | NETIF_F_HW_VLAN_CTAG_TX; |
2132 | 2132 | ||
2133 | /* copy netdev features into list of user selectable features */ | 2133 | /* copy netdev features into list of user selectable features */ |
2134 | netdev->hw_features |= netdev->features; | 2134 | netdev->hw_features |= netdev->features; |
2135 | netdev->hw_features |= NETIF_F_RXALL; | 2135 | netdev->hw_features |= NETIF_F_RXALL; |
2136 | 2136 | ||
2137 | /* set this bit last since it cannot be part of hw_features */ | 2137 | /* set this bit last since it cannot be part of hw_features */ |
2138 | netdev->features |= NETIF_F_HW_VLAN_FILTER; | 2138 | netdev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; |
2139 | 2139 | ||
2140 | netdev->vlan_features |= NETIF_F_TSO | | 2140 | netdev->vlan_features |= NETIF_F_TSO | |
2141 | NETIF_F_TSO6 | | 2141 | NETIF_F_TSO6 | |
@@ -6674,7 +6674,7 @@ static void igb_process_skb_fields(struct igb_ring *rx_ring, | |||
6674 | 6674 | ||
6675 | igb_ptp_rx_hwtstamp(rx_ring->q_vector, rx_desc, skb); | 6675 | igb_ptp_rx_hwtstamp(rx_ring->q_vector, rx_desc, skb); |
6676 | 6676 | ||
6677 | if ((dev->features & NETIF_F_HW_VLAN_RX) && | 6677 | if ((dev->features & NETIF_F_HW_VLAN_CTAG_RX) && |
6678 | igb_test_staterr(rx_desc, E1000_RXD_STAT_VP)) { | 6678 | igb_test_staterr(rx_desc, E1000_RXD_STAT_VP)) { |
6679 | u16 vid; | 6679 | u16 vid; |
6680 | if (igb_test_staterr(rx_desc, E1000_RXDEXT_STATERR_LB) && | 6680 | if (igb_test_staterr(rx_desc, E1000_RXDEXT_STATERR_LB) && |
@@ -6954,7 +6954,7 @@ static void igb_vlan_mode(struct net_device *netdev, netdev_features_t features) | |||
6954 | struct igb_adapter *adapter = netdev_priv(netdev); | 6954 | struct igb_adapter *adapter = netdev_priv(netdev); |
6955 | struct e1000_hw *hw = &adapter->hw; | 6955 | struct e1000_hw *hw = &adapter->hw; |
6956 | u32 ctrl, rctl; | 6956 | u32 ctrl, rctl; |
6957 | bool enable = !!(features & NETIF_F_HW_VLAN_RX); | 6957 | bool enable = !!(features & NETIF_F_HW_VLAN_CTAG_RX); |
6958 | 6958 | ||
6959 | if (enable) { | 6959 | if (enable) { |
6960 | /* enable VLAN tag insert/strip */ | 6960 | /* enable VLAN tag insert/strip */ |
diff --git a/drivers/net/ethernet/intel/igbvf/netdev.c b/drivers/net/ethernet/intel/igbvf/netdev.c index bea46bb26061..33e7b3069fb6 100644 --- a/drivers/net/ethernet/intel/igbvf/netdev.c +++ b/drivers/net/ethernet/intel/igbvf/netdev.c | |||
@@ -2722,9 +2722,9 @@ static int igbvf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
2722 | NETIF_F_RXCSUM; | 2722 | NETIF_F_RXCSUM; |
2723 | 2723 | ||
2724 | netdev->features = netdev->hw_features | | 2724 | netdev->features = netdev->hw_features | |
2725 | NETIF_F_HW_VLAN_TX | | 2725 | NETIF_F_HW_VLAN_CTAG_TX | |
2726 | NETIF_F_HW_VLAN_RX | | 2726 | NETIF_F_HW_VLAN_CTAG_RX | |
2727 | NETIF_F_HW_VLAN_FILTER; | 2727 | NETIF_F_HW_VLAN_CTAG_FILTER; |
2728 | 2728 | ||
2729 | if (pci_using_dac) | 2729 | if (pci_using_dac) |
2730 | netdev->features |= NETIF_F_HIGHDMA; | 2730 | netdev->features |= NETIF_F_HIGHDMA; |
diff --git a/drivers/net/ethernet/intel/ixgb/ixgb_main.c b/drivers/net/ethernet/intel/ixgb/ixgb_main.c index 5dc119fd95a8..e65d9e910227 100644 --- a/drivers/net/ethernet/intel/ixgb/ixgb_main.c +++ b/drivers/net/ethernet/intel/ixgb/ixgb_main.c | |||
@@ -332,8 +332,8 @@ ixgb_fix_features(struct net_device *netdev, netdev_features_t features) | |||
332 | * Tx VLAN insertion does not work per HW design when Rx stripping is | 332 | * Tx VLAN insertion does not work per HW design when Rx stripping is |
333 | * disabled. | 333 | * disabled. |
334 | */ | 334 | */ |
335 | if (!(features & NETIF_F_HW_VLAN_RX)) | 335 | if (!(features & NETIF_F_HW_VLAN_CTAG_RX)) |
336 | features &= ~NETIF_F_HW_VLAN_TX; | 336 | features &= ~NETIF_F_HW_VLAN_CTAG_TX; |
337 | 337 | ||
338 | return features; | 338 | return features; |
339 | } | 339 | } |
@@ -344,7 +344,7 @@ ixgb_set_features(struct net_device *netdev, netdev_features_t features) | |||
344 | struct ixgb_adapter *adapter = netdev_priv(netdev); | 344 | struct ixgb_adapter *adapter = netdev_priv(netdev); |
345 | netdev_features_t changed = features ^ netdev->features; | 345 | netdev_features_t changed = features ^ netdev->features; |
346 | 346 | ||
347 | if (!(changed & (NETIF_F_RXCSUM|NETIF_F_HW_VLAN_RX))) | 347 | if (!(changed & (NETIF_F_RXCSUM|NETIF_F_HW_VLAN_CTAG_RX))) |
348 | return 0; | 348 | return 0; |
349 | 349 | ||
350 | adapter->rx_csum = !!(features & NETIF_F_RXCSUM); | 350 | adapter->rx_csum = !!(features & NETIF_F_RXCSUM); |
@@ -479,10 +479,10 @@ ixgb_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
479 | netdev->hw_features = NETIF_F_SG | | 479 | netdev->hw_features = NETIF_F_SG | |
480 | NETIF_F_TSO | | 480 | NETIF_F_TSO | |
481 | NETIF_F_HW_CSUM | | 481 | NETIF_F_HW_CSUM | |
482 | NETIF_F_HW_VLAN_TX | | 482 | NETIF_F_HW_VLAN_CTAG_TX | |
483 | NETIF_F_HW_VLAN_RX; | 483 | NETIF_F_HW_VLAN_CTAG_RX; |
484 | netdev->features = netdev->hw_features | | 484 | netdev->features = netdev->hw_features | |
485 | NETIF_F_HW_VLAN_FILTER; | 485 | NETIF_F_HW_VLAN_CTAG_FILTER; |
486 | netdev->hw_features |= NETIF_F_RXCSUM; | 486 | netdev->hw_features |= NETIF_F_RXCSUM; |
487 | 487 | ||
488 | if (pci_using_dac) { | 488 | if (pci_using_dac) { |
@@ -1140,7 +1140,7 @@ ixgb_set_multi(struct net_device *netdev) | |||
1140 | } | 1140 | } |
1141 | 1141 | ||
1142 | alloc_failed: | 1142 | alloc_failed: |
1143 | if (netdev->features & NETIF_F_HW_VLAN_RX) | 1143 | if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX) |
1144 | ixgb_vlan_strip_enable(adapter); | 1144 | ixgb_vlan_strip_enable(adapter); |
1145 | else | 1145 | else |
1146 | ixgb_vlan_strip_disable(adapter); | 1146 | ixgb_vlan_strip_disable(adapter); |
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index c022f9c417a6..0316b65dfe06 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | |||
@@ -1488,7 +1488,7 @@ static void ixgbe_process_skb_fields(struct ixgbe_ring *rx_ring, | |||
1488 | 1488 | ||
1489 | ixgbe_ptp_rx_hwtstamp(rx_ring, rx_desc, skb); | 1489 | ixgbe_ptp_rx_hwtstamp(rx_ring, rx_desc, skb); |
1490 | 1490 | ||
1491 | if ((dev->features & NETIF_F_HW_VLAN_RX) && | 1491 | if ((dev->features & NETIF_F_HW_VLAN_CTAG_RX) && |
1492 | ixgbe_test_staterr(rx_desc, IXGBE_RXD_STAT_VP)) { | 1492 | ixgbe_test_staterr(rx_desc, IXGBE_RXD_STAT_VP)) { |
1493 | u16 vid = le16_to_cpu(rx_desc->wb.upper.vlan); | 1493 | u16 vid = le16_to_cpu(rx_desc->wb.upper.vlan); |
1494 | __vlan_hwaccel_put_tag(skb, vid); | 1494 | __vlan_hwaccel_put_tag(skb, vid); |
@@ -3722,7 +3722,7 @@ void ixgbe_set_rx_mode(struct net_device *netdev) | |||
3722 | 3722 | ||
3723 | IXGBE_WRITE_REG(hw, IXGBE_FCTRL, fctrl); | 3723 | IXGBE_WRITE_REG(hw, IXGBE_FCTRL, fctrl); |
3724 | 3724 | ||
3725 | if (netdev->features & NETIF_F_HW_VLAN_RX) | 3725 | if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX) |
3726 | ixgbe_vlan_strip_enable(adapter); | 3726 | ixgbe_vlan_strip_enable(adapter); |
3727 | else | 3727 | else |
3728 | ixgbe_vlan_strip_disable(adapter); | 3728 | ixgbe_vlan_strip_disable(adapter); |
@@ -7024,7 +7024,7 @@ static int ixgbe_set_features(struct net_device *netdev, | |||
7024 | break; | 7024 | break; |
7025 | } | 7025 | } |
7026 | 7026 | ||
7027 | if (features & NETIF_F_HW_VLAN_RX) | 7027 | if (features & NETIF_F_HW_VLAN_CTAG_RX) |
7028 | ixgbe_vlan_strip_enable(adapter); | 7028 | ixgbe_vlan_strip_enable(adapter); |
7029 | else | 7029 | else |
7030 | ixgbe_vlan_strip_disable(adapter); | 7030 | ixgbe_vlan_strip_disable(adapter); |
@@ -7431,9 +7431,9 @@ skip_sriov: | |||
7431 | netdev->features = NETIF_F_SG | | 7431 | netdev->features = NETIF_F_SG | |
7432 | NETIF_F_IP_CSUM | | 7432 | NETIF_F_IP_CSUM | |
7433 | NETIF_F_IPV6_CSUM | | 7433 | NETIF_F_IPV6_CSUM | |
7434 | NETIF_F_HW_VLAN_TX | | 7434 | NETIF_F_HW_VLAN_CTAG_TX | |
7435 | NETIF_F_HW_VLAN_RX | | 7435 | NETIF_F_HW_VLAN_CTAG_RX | |
7436 | NETIF_F_HW_VLAN_FILTER | | 7436 | NETIF_F_HW_VLAN_CTAG_FILTER | |
7437 | NETIF_F_TSO | | 7437 | NETIF_F_TSO | |
7438 | NETIF_F_TSO6 | | 7438 | NETIF_F_TSO6 | |
7439 | NETIF_F_RXHASH | | 7439 | NETIF_F_RXHASH | |
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c index b3e6530637e3..2d4bdcc4fdbe 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | |||
@@ -35,7 +35,7 @@ | |||
35 | #include <linux/ip.h> | 35 | #include <linux/ip.h> |
36 | #include <linux/tcp.h> | 36 | #include <linux/tcp.h> |
37 | #include <linux/ipv6.h> | 37 | #include <linux/ipv6.h> |
38 | #ifdef NETIF_F_HW_VLAN_TX | 38 | #ifdef NETIF_F_HW_VLAN_CTAG_TX |
39 | #include <linux/if_vlan.h> | 39 | #include <linux/if_vlan.h> |
40 | #endif | 40 | #endif |
41 | 41 | ||
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c index eeae9349f78b..8f907b7af319 100644 --- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | |||
@@ -3410,9 +3410,9 @@ static int ixgbevf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
3410 | NETIF_F_RXCSUM; | 3410 | NETIF_F_RXCSUM; |
3411 | 3411 | ||
3412 | netdev->features = netdev->hw_features | | 3412 | netdev->features = netdev->hw_features | |
3413 | NETIF_F_HW_VLAN_TX | | 3413 | NETIF_F_HW_VLAN_CTAG_TX | |
3414 | NETIF_F_HW_VLAN_RX | | 3414 | NETIF_F_HW_VLAN_CTAG_RX | |
3415 | NETIF_F_HW_VLAN_FILTER; | 3415 | NETIF_F_HW_VLAN_CTAG_FILTER; |
3416 | 3416 | ||
3417 | netdev->vlan_features |= NETIF_F_TSO; | 3417 | netdev->vlan_features |= NETIF_F_TSO; |
3418 | netdev->vlan_features |= NETIF_F_TSO6; | 3418 | netdev->vlan_features |= NETIF_F_TSO6; |
diff --git a/drivers/net/ethernet/jme.c b/drivers/net/ethernet/jme.c index 0519afa413d2..d28ce6f97172 100644 --- a/drivers/net/ethernet/jme.c +++ b/drivers/net/ethernet/jme.c | |||
@@ -3030,8 +3030,8 @@ jme_init_one(struct pci_dev *pdev, | |||
3030 | NETIF_F_SG | | 3030 | NETIF_F_SG | |
3031 | NETIF_F_TSO | | 3031 | NETIF_F_TSO | |
3032 | NETIF_F_TSO6 | | 3032 | NETIF_F_TSO6 | |
3033 | NETIF_F_HW_VLAN_TX | | 3033 | NETIF_F_HW_VLAN_CTAG_TX | |
3034 | NETIF_F_HW_VLAN_RX; | 3034 | NETIF_F_HW_VLAN_CTAG_RX; |
3035 | if (using_dac) | 3035 | if (using_dac) |
3036 | netdev->features |= NETIF_F_HIGHDMA; | 3036 | netdev->features |= NETIF_F_HIGHDMA; |
3037 | 3037 | ||
diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c index 6a0e671fcecd..bf9da1b7b090 100644 --- a/drivers/net/ethernet/marvell/sky2.c +++ b/drivers/net/ethernet/marvell/sky2.c | |||
@@ -1421,14 +1421,14 @@ static void sky2_vlan_mode(struct net_device *dev, netdev_features_t features) | |||
1421 | struct sky2_hw *hw = sky2->hw; | 1421 | struct sky2_hw *hw = sky2->hw; |
1422 | u16 port = sky2->port; | 1422 | u16 port = sky2->port; |
1423 | 1423 | ||
1424 | if (features & NETIF_F_HW_VLAN_RX) | 1424 | if (features & NETIF_F_HW_VLAN_CTAG_RX) |
1425 | sky2_write32(hw, SK_REG(port, RX_GMF_CTRL_T), | 1425 | sky2_write32(hw, SK_REG(port, RX_GMF_CTRL_T), |
1426 | RX_VLAN_STRIP_ON); | 1426 | RX_VLAN_STRIP_ON); |
1427 | else | 1427 | else |
1428 | sky2_write32(hw, SK_REG(port, RX_GMF_CTRL_T), | 1428 | sky2_write32(hw, SK_REG(port, RX_GMF_CTRL_T), |
1429 | RX_VLAN_STRIP_OFF); | 1429 | RX_VLAN_STRIP_OFF); |
1430 | 1430 | ||
1431 | if (features & NETIF_F_HW_VLAN_TX) { | 1431 | if (features & NETIF_F_HW_VLAN_CTAG_TX) { |
1432 | sky2_write32(hw, SK_REG(port, TX_GMF_CTRL_T), | 1432 | sky2_write32(hw, SK_REG(port, TX_GMF_CTRL_T), |
1433 | TX_VLAN_TAG_ON); | 1433 | TX_VLAN_TAG_ON); |
1434 | 1434 | ||
@@ -4406,7 +4406,7 @@ static int sky2_set_features(struct net_device *dev, netdev_features_t features) | |||
4406 | if (changed & NETIF_F_RXHASH) | 4406 | if (changed & NETIF_F_RXHASH) |
4407 | rx_set_rss(dev, features); | 4407 | rx_set_rss(dev, features); |
4408 | 4408 | ||
4409 | if (changed & (NETIF_F_HW_VLAN_TX|NETIF_F_HW_VLAN_RX)) | 4409 | if (changed & (NETIF_F_HW_VLAN_CTAG_TX|NETIF_F_HW_VLAN_CTAG_RX)) |
4410 | sky2_vlan_mode(dev, features); | 4410 | sky2_vlan_mode(dev, features); |
4411 | 4411 | ||
4412 | return 0; | 4412 | return 0; |
@@ -4793,7 +4793,8 @@ static struct net_device *sky2_init_netdev(struct sky2_hw *hw, unsigned port, | |||
4793 | dev->hw_features |= NETIF_F_RXHASH; | 4793 | dev->hw_features |= NETIF_F_RXHASH; |
4794 | 4794 | ||
4795 | if (!(hw->flags & SKY2_HW_VLAN_BROKEN)) { | 4795 | if (!(hw->flags & SKY2_HW_VLAN_BROKEN)) { |
4796 | dev->hw_features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | 4796 | dev->hw_features |= NETIF_F_HW_VLAN_CTAG_TX | |
4797 | NETIF_F_HW_VLAN_CTAG_RX; | ||
4797 | dev->vlan_features |= SKY2_VLAN_OFFLOADS; | 4798 | dev->vlan_features |= SKY2_VLAN_OFFLOADS; |
4798 | } | 4799 | } |
4799 | 4800 | ||
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c index d2a4f919bf1f..b2ba39c7143a 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c | |||
@@ -2082,8 +2082,8 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port, | |||
2082 | 2082 | ||
2083 | dev->hw_features |= NETIF_F_RXCSUM | NETIF_F_RXHASH; | 2083 | dev->hw_features |= NETIF_F_RXCSUM | NETIF_F_RXHASH; |
2084 | dev->features = dev->hw_features | NETIF_F_HIGHDMA | | 2084 | dev->features = dev->hw_features | NETIF_F_HIGHDMA | |
2085 | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX | | 2085 | NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX | |
2086 | NETIF_F_HW_VLAN_FILTER; | 2086 | NETIF_F_HW_VLAN_CTAG_FILTER; |
2087 | dev->hw_features |= NETIF_F_LOOPBACK; | 2087 | dev->hw_features |= NETIF_F_LOOPBACK; |
2088 | 2088 | ||
2089 | if (mdev->dev->caps.steering_mode == | 2089 | if (mdev->dev->caps.steering_mode == |
diff --git a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c index d5ffdc8264eb..46262ea610fd 100644 --- a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c +++ b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c | |||
@@ -1281,7 +1281,8 @@ myri10ge_vlan_rx(struct net_device *dev, void *addr, struct sk_buff *skb) | |||
1281 | va = addr; | 1281 | va = addr; |
1282 | va += MXGEFW_PAD; | 1282 | va += MXGEFW_PAD; |
1283 | veh = (struct vlan_ethhdr *)va; | 1283 | veh = (struct vlan_ethhdr *)va; |
1284 | if ((dev->features & NETIF_F_HW_VLAN_RX) == NETIF_F_HW_VLAN_RX && | 1284 | if ((dev->features & NETIF_F_HW_VLAN_CTAG_RX) == |
1285 | NETIF_F_HW_VLAN_CTAG_RX && | ||
1285 | veh->h_vlan_proto == htons(ETH_P_8021Q)) { | 1286 | veh->h_vlan_proto == htons(ETH_P_8021Q)) { |
1286 | /* fixup csum if needed */ | 1287 | /* fixup csum if needed */ |
1287 | if (skb->ip_summed == CHECKSUM_COMPLETE) { | 1288 | if (skb->ip_summed == CHECKSUM_COMPLETE) { |
@@ -3887,8 +3888,8 @@ static int myri10ge_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
3887 | netdev->mtu = myri10ge_initial_mtu; | 3888 | netdev->mtu = myri10ge_initial_mtu; |
3888 | netdev->hw_features = mgp->features | NETIF_F_RXCSUM; | 3889 | netdev->hw_features = mgp->features | NETIF_F_RXCSUM; |
3889 | 3890 | ||
3890 | /* fake NETIF_F_HW_VLAN_RX for good GRO performance */ | 3891 | /* fake NETIF_F_HW_VLAN_CTAG_RX for good GRO performance */ |
3891 | netdev->hw_features |= NETIF_F_HW_VLAN_RX; | 3892 | netdev->hw_features |= NETIF_F_HW_VLAN_CTAG_RX; |
3892 | 3893 | ||
3893 | netdev->features = netdev->hw_features; | 3894 | netdev->features = netdev->hw_features; |
3894 | 3895 | ||
diff --git a/drivers/net/ethernet/natsemi/ns83820.c b/drivers/net/ethernet/natsemi/ns83820.c index 77c070de621e..60267e91cbda 100644 --- a/drivers/net/ethernet/natsemi/ns83820.c +++ b/drivers/net/ethernet/natsemi/ns83820.c | |||
@@ -2193,7 +2193,7 @@ static int ns83820_init_one(struct pci_dev *pci_dev, | |||
2193 | 2193 | ||
2194 | #ifdef NS83820_VLAN_ACCEL_SUPPORT | 2194 | #ifdef NS83820_VLAN_ACCEL_SUPPORT |
2195 | /* We also support hardware vlan acceleration */ | 2195 | /* We also support hardware vlan acceleration */ |
2196 | ndev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | 2196 | ndev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX; |
2197 | #endif | 2197 | #endif |
2198 | 2198 | ||
2199 | if (using_dac) { | 2199 | if (using_dac) { |
diff --git a/drivers/net/ethernet/neterion/s2io.c b/drivers/net/ethernet/neterion/s2io.c index 3371ff41bb34..ec82d59b03ed 100644 --- a/drivers/net/ethernet/neterion/s2io.c +++ b/drivers/net/ethernet/neterion/s2io.c | |||
@@ -7920,7 +7920,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre) | |||
7920 | NETIF_F_TSO | NETIF_F_TSO6 | | 7920 | NETIF_F_TSO | NETIF_F_TSO6 | |
7921 | NETIF_F_RXCSUM | NETIF_F_LRO; | 7921 | NETIF_F_RXCSUM | NETIF_F_LRO; |
7922 | dev->features |= dev->hw_features | | 7922 | dev->features |= dev->hw_features | |
7923 | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | 7923 | NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX; |
7924 | if (sp->device_type & XFRAME_II_DEVICE) { | 7924 | if (sp->device_type & XFRAME_II_DEVICE) { |
7925 | dev->hw_features |= NETIF_F_UFO; | 7925 | dev->hw_features |= NETIF_F_UFO; |
7926 | if (ufo) | 7926 | if (ufo) |
diff --git a/drivers/net/ethernet/neterion/vxge/vxge-main.c b/drivers/net/ethernet/neterion/vxge/vxge-main.c index 794444e09492..e9e58aadf87e 100644 --- a/drivers/net/ethernet/neterion/vxge/vxge-main.c +++ b/drivers/net/ethernet/neterion/vxge/vxge-main.c | |||
@@ -3415,12 +3415,12 @@ static int vxge_device_register(struct __vxge_hw_device *hldev, | |||
3415 | ndev->hw_features = NETIF_F_RXCSUM | NETIF_F_SG | | 3415 | ndev->hw_features = NETIF_F_RXCSUM | NETIF_F_SG | |
3416 | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | | 3416 | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | |
3417 | NETIF_F_TSO | NETIF_F_TSO6 | | 3417 | NETIF_F_TSO | NETIF_F_TSO6 | |
3418 | NETIF_F_HW_VLAN_TX; | 3418 | NETIF_F_HW_VLAN_CTAG_TX; |
3419 | if (vdev->config.rth_steering != NO_STEERING) | 3419 | if (vdev->config.rth_steering != NO_STEERING) |
3420 | ndev->hw_features |= NETIF_F_RXHASH; | 3420 | ndev->hw_features |= NETIF_F_RXHASH; |
3421 | 3421 | ||
3422 | ndev->features |= ndev->hw_features | | 3422 | ndev->features |= ndev->hw_features | |
3423 | NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER; | 3423 | NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_CTAG_FILTER; |
3424 | 3424 | ||
3425 | 3425 | ||
3426 | ndev->netdev_ops = &vxge_netdev_ops; | 3426 | ndev->netdev_ops = &vxge_netdev_ops; |
diff --git a/drivers/net/ethernet/nvidia/forcedeth.c b/drivers/net/ethernet/nvidia/forcedeth.c index 5ae124719790..fcad64081d74 100644 --- a/drivers/net/ethernet/nvidia/forcedeth.c +++ b/drivers/net/ethernet/nvidia/forcedeth.c | |||
@@ -2961,11 +2961,11 @@ static int nv_rx_process_optimized(struct net_device *dev, int limit) | |||
2961 | vlanflags = le32_to_cpu(np->get_rx.ex->buflow); | 2961 | vlanflags = le32_to_cpu(np->get_rx.ex->buflow); |
2962 | 2962 | ||
2963 | /* | 2963 | /* |
2964 | * There's need to check for NETIF_F_HW_VLAN_RX here. | 2964 | * There's need to check for NETIF_F_HW_VLAN_CTAG_RX |
2965 | * Even if vlan rx accel is disabled, | 2965 | * here. Even if vlan rx accel is disabled, |
2966 | * NV_RX3_VLAN_TAG_PRESENT is pseudo randomly set. | 2966 | * NV_RX3_VLAN_TAG_PRESENT is pseudo randomly set. |
2967 | */ | 2967 | */ |
2968 | if (dev->features & NETIF_F_HW_VLAN_RX && | 2968 | if (dev->features & NETIF_F_HW_VLAN_CTAG_RX && |
2969 | vlanflags & NV_RX3_VLAN_TAG_PRESENT) { | 2969 | vlanflags & NV_RX3_VLAN_TAG_PRESENT) { |
2970 | u16 vid = vlanflags & NV_RX3_VLAN_TAG_MASK; | 2970 | u16 vid = vlanflags & NV_RX3_VLAN_TAG_MASK; |
2971 | 2971 | ||
@@ -4816,7 +4816,7 @@ static netdev_features_t nv_fix_features(struct net_device *dev, | |||
4816 | netdev_features_t features) | 4816 | netdev_features_t features) |
4817 | { | 4817 | { |
4818 | /* vlan is dependent on rx checksum offload */ | 4818 | /* vlan is dependent on rx checksum offload */ |
4819 | if (features & (NETIF_F_HW_VLAN_TX|NETIF_F_HW_VLAN_RX)) | 4819 | if (features & (NETIF_F_HW_VLAN_CTAG_TX|NETIF_F_HW_VLAN_CTAG_RX)) |
4820 | features |= NETIF_F_RXCSUM; | 4820 | features |= NETIF_F_RXCSUM; |
4821 | 4821 | ||
4822 | return features; | 4822 | return features; |
@@ -4828,12 +4828,12 @@ static void nv_vlan_mode(struct net_device *dev, netdev_features_t features) | |||
4828 | 4828 | ||
4829 | spin_lock_irq(&np->lock); | 4829 | spin_lock_irq(&np->lock); |
4830 | 4830 | ||
4831 | if (features & NETIF_F_HW_VLAN_RX) | 4831 | if (features & NETIF_F_HW_VLAN_CTAG_RX) |
4832 | np->txrxctl_bits |= NVREG_TXRXCTL_VLANSTRIP; | 4832 | np->txrxctl_bits |= NVREG_TXRXCTL_VLANSTRIP; |
4833 | else | 4833 | else |
4834 | np->txrxctl_bits &= ~NVREG_TXRXCTL_VLANSTRIP; | 4834 | np->txrxctl_bits &= ~NVREG_TXRXCTL_VLANSTRIP; |
4835 | 4835 | ||
4836 | if (features & NETIF_F_HW_VLAN_TX) | 4836 | if (features & NETIF_F_HW_VLAN_CTAG_TX) |
4837 | np->txrxctl_bits |= NVREG_TXRXCTL_VLANINS; | 4837 | np->txrxctl_bits |= NVREG_TXRXCTL_VLANINS; |
4838 | else | 4838 | else |
4839 | np->txrxctl_bits &= ~NVREG_TXRXCTL_VLANINS; | 4839 | np->txrxctl_bits &= ~NVREG_TXRXCTL_VLANINS; |
@@ -4870,7 +4870,7 @@ static int nv_set_features(struct net_device *dev, netdev_features_t features) | |||
4870 | spin_unlock_irq(&np->lock); | 4870 | spin_unlock_irq(&np->lock); |
4871 | } | 4871 | } |
4872 | 4872 | ||
4873 | if (changed & (NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX)) | 4873 | if (changed & (NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX)) |
4874 | nv_vlan_mode(dev, features); | 4874 | nv_vlan_mode(dev, features); |
4875 | 4875 | ||
4876 | return 0; | 4876 | return 0; |
@@ -5705,7 +5705,8 @@ static int nv_probe(struct pci_dev *pci_dev, const struct pci_device_id *id) | |||
5705 | np->vlanctl_bits = 0; | 5705 | np->vlanctl_bits = 0; |
5706 | if (id->driver_data & DEV_HAS_VLAN) { | 5706 | if (id->driver_data & DEV_HAS_VLAN) { |
5707 | np->vlanctl_bits = NVREG_VLANCONTROL_ENABLE; | 5707 | np->vlanctl_bits = NVREG_VLANCONTROL_ENABLE; |
5708 | dev->hw_features |= NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_TX; | 5708 | dev->hw_features |= NETIF_F_HW_VLAN_CTAG_RX | |
5709 | NETIF_F_HW_VLAN_CTAG_TX; | ||
5709 | } | 5710 | } |
5710 | 5711 | ||
5711 | dev->features |= dev->hw_features; | 5712 | dev->features |= dev->hw_features; |
@@ -5996,7 +5997,8 @@ static int nv_probe(struct pci_dev *pci_dev, const struct pci_device_id *id) | |||
5996 | dev->features & NETIF_F_HIGHDMA ? "highdma " : "", | 5997 | dev->features & NETIF_F_HIGHDMA ? "highdma " : "", |
5997 | dev->features & (NETIF_F_IP_CSUM | NETIF_F_SG) ? | 5998 | dev->features & (NETIF_F_IP_CSUM | NETIF_F_SG) ? |
5998 | "csum " : "", | 5999 | "csum " : "", |
5999 | dev->features & (NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_TX) ? | 6000 | dev->features & (NETIF_F_HW_VLAN_CTAG_RX | |
6001 | NETIF_F_HW_VLAN_CTAG_TX) ? | ||
6000 | "vlan " : "", | 6002 | "vlan " : "", |
6001 | dev->features & (NETIF_F_LOOPBACK) ? | 6003 | dev->features & (NETIF_F_LOOPBACK) ? |
6002 | "loopback " : "", | 6004 | "loopback " : "", |
diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c index 7867aebc05f2..af951f343ff6 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c | |||
@@ -1345,7 +1345,7 @@ netxen_setup_netdev(struct netxen_adapter *adapter, | |||
1345 | } | 1345 | } |
1346 | 1346 | ||
1347 | if (adapter->capabilities & NX_FW_CAPABILITY_FVLANTX) | 1347 | if (adapter->capabilities & NX_FW_CAPABILITY_FVLANTX) |
1348 | netdev->hw_features |= NETIF_F_HW_VLAN_TX; | 1348 | netdev->hw_features |= NETIF_F_HW_VLAN_CTAG_TX; |
1349 | 1349 | ||
1350 | if (adapter->capabilities & NX_FW_CAPABILITY_HW_LRO) | 1350 | if (adapter->capabilities & NX_FW_CAPABILITY_HW_LRO) |
1351 | netdev->hw_features |= NETIF_F_LRO; | 1351 | netdev->hw_features |= NETIF_F_LRO; |
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c index 0d00b2bd2c81..845ba1d1c3c9 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | |||
@@ -1714,7 +1714,7 @@ qlcnic_setup_netdev(struct qlcnic_adapter *adapter, struct net_device *netdev, | |||
1714 | 1714 | ||
1715 | netdev->features |= (NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_RXCSUM | | 1715 | netdev->features |= (NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_RXCSUM | |
1716 | NETIF_F_IPV6_CSUM | NETIF_F_GRO | | 1716 | NETIF_F_IPV6_CSUM | NETIF_F_GRO | |
1717 | NETIF_F_HW_VLAN_RX); | 1717 | NETIF_F_HW_VLAN_CTAG_RX); |
1718 | netdev->vlan_features |= (NETIF_F_SG | NETIF_F_IP_CSUM | | 1718 | netdev->vlan_features |= (NETIF_F_SG | NETIF_F_IP_CSUM | |
1719 | NETIF_F_IPV6_CSUM); | 1719 | NETIF_F_IPV6_CSUM); |
1720 | 1720 | ||
@@ -1729,7 +1729,7 @@ qlcnic_setup_netdev(struct qlcnic_adapter *adapter, struct net_device *netdev, | |||
1729 | } | 1729 | } |
1730 | 1730 | ||
1731 | if (qlcnic_vlan_tx_check(adapter)) | 1731 | if (qlcnic_vlan_tx_check(adapter)) |
1732 | netdev->features |= (NETIF_F_HW_VLAN_TX); | 1732 | netdev->features |= (NETIF_F_HW_VLAN_CTAG_TX); |
1733 | 1733 | ||
1734 | if (adapter->ahw->capabilities & QLCNIC_FW_CAPABILITY_HW_LRO) | 1734 | if (adapter->ahw->capabilities & QLCNIC_FW_CAPABILITY_HW_LRO) |
1735 | netdev->features |= NETIF_F_LRO; | 1735 | netdev->features |= NETIF_F_LRO; |
diff --git a/drivers/net/ethernet/qlogic/qlge/qlge_main.c b/drivers/net/ethernet/qlogic/qlge/qlge_main.c index 1dd778a6f01e..8e3f43c75665 100644 --- a/drivers/net/ethernet/qlogic/qlge/qlge_main.c +++ b/drivers/net/ethernet/qlogic/qlge/qlge_main.c | |||
@@ -409,7 +409,7 @@ static int ql_set_mac_addr_reg(struct ql_adapter *qdev, u8 *addr, u32 type, | |||
409 | (qdev-> | 409 | (qdev-> |
410 | func << CAM_OUT_FUNC_SHIFT) | | 410 | func << CAM_OUT_FUNC_SHIFT) | |
411 | (0 << CAM_OUT_CQ_ID_SHIFT)); | 411 | (0 << CAM_OUT_CQ_ID_SHIFT)); |
412 | if (qdev->ndev->features & NETIF_F_HW_VLAN_RX) | 412 | if (qdev->ndev->features & NETIF_F_HW_VLAN_CTAG_RX) |
413 | cam_output |= CAM_OUT_RV; | 413 | cam_output |= CAM_OUT_RV; |
414 | /* route to NIC core */ | 414 | /* route to NIC core */ |
415 | ql_write32(qdev, MAC_ADDR_DATA, cam_output); | 415 | ql_write32(qdev, MAC_ADDR_DATA, cam_output); |
@@ -2279,7 +2279,7 @@ static void qlge_vlan_mode(struct net_device *ndev, netdev_features_t features) | |||
2279 | { | 2279 | { |
2280 | struct ql_adapter *qdev = netdev_priv(ndev); | 2280 | struct ql_adapter *qdev = netdev_priv(ndev); |
2281 | 2281 | ||
2282 | if (features & NETIF_F_HW_VLAN_RX) { | 2282 | if (features & NETIF_F_HW_VLAN_CTAG_RX) { |
2283 | ql_write32(qdev, NIC_RCV_CFG, NIC_RCV_CFG_VLAN_MASK | | 2283 | ql_write32(qdev, NIC_RCV_CFG, NIC_RCV_CFG_VLAN_MASK | |
2284 | NIC_RCV_CFG_VLAN_MATCH_AND_NON); | 2284 | NIC_RCV_CFG_VLAN_MATCH_AND_NON); |
2285 | } else { | 2285 | } else { |
@@ -2294,10 +2294,10 @@ static netdev_features_t qlge_fix_features(struct net_device *ndev, | |||
2294 | * Since there is no support for separate rx/tx vlan accel | 2294 | * Since there is no support for separate rx/tx vlan accel |
2295 | * enable/disable make sure tx flag is always in same state as rx. | 2295 | * enable/disable make sure tx flag is always in same state as rx. |
2296 | */ | 2296 | */ |
2297 | if (features & NETIF_F_HW_VLAN_RX) | 2297 | if (features & NETIF_F_HW_VLAN_CTAG_RX) |
2298 | features |= NETIF_F_HW_VLAN_TX; | 2298 | features |= NETIF_F_HW_VLAN_CTAG_TX; |
2299 | else | 2299 | else |
2300 | features &= ~NETIF_F_HW_VLAN_TX; | 2300 | features &= ~NETIF_F_HW_VLAN_CTAG_TX; |
2301 | 2301 | ||
2302 | return features; | 2302 | return features; |
2303 | } | 2303 | } |
@@ -2307,7 +2307,7 @@ static int qlge_set_features(struct net_device *ndev, | |||
2307 | { | 2307 | { |
2308 | netdev_features_t changed = ndev->features ^ features; | 2308 | netdev_features_t changed = ndev->features ^ features; |
2309 | 2309 | ||
2310 | if (changed & NETIF_F_HW_VLAN_RX) | 2310 | if (changed & NETIF_F_HW_VLAN_CTAG_RX) |
2311 | qlge_vlan_mode(ndev, features); | 2311 | qlge_vlan_mode(ndev, features); |
2312 | 2312 | ||
2313 | return 0; | 2313 | return 0; |
@@ -4665,9 +4665,9 @@ static int qlge_probe(struct pci_dev *pdev, | |||
4665 | SET_NETDEV_DEV(ndev, &pdev->dev); | 4665 | SET_NETDEV_DEV(ndev, &pdev->dev); |
4666 | ndev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | | 4666 | ndev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | |
4667 | NETIF_F_TSO | NETIF_F_TSO_ECN | | 4667 | NETIF_F_TSO | NETIF_F_TSO_ECN | |
4668 | NETIF_F_HW_VLAN_TX | NETIF_F_RXCSUM; | 4668 | NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_RXCSUM; |
4669 | ndev->features = ndev->hw_features | | 4669 | ndev->features = ndev->hw_features | |
4670 | NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER; | 4670 | NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_CTAG_FILTER; |
4671 | ndev->vlan_features = ndev->hw_features; | 4671 | ndev->vlan_features = ndev->hw_features; |
4672 | 4672 | ||
4673 | if (test_bit(QL_DMA64, &qdev->flags)) | 4673 | if (test_bit(QL_DMA64, &qdev->flags)) |
diff --git a/drivers/net/ethernet/realtek/8139cp.c b/drivers/net/ethernet/realtek/8139cp.c index b62a32484f6a..6d03b52e56f1 100644 --- a/drivers/net/ethernet/realtek/8139cp.c +++ b/drivers/net/ethernet/realtek/8139cp.c | |||
@@ -1438,7 +1438,7 @@ static int cp_set_features(struct net_device *dev, netdev_features_t features) | |||
1438 | else | 1438 | else |
1439 | cp->cpcmd &= ~RxChkSum; | 1439 | cp->cpcmd &= ~RxChkSum; |
1440 | 1440 | ||
1441 | if (features & NETIF_F_HW_VLAN_RX) | 1441 | if (features & NETIF_F_HW_VLAN_CTAG_RX) |
1442 | cp->cpcmd |= RxVlanOn; | 1442 | cp->cpcmd |= RxVlanOn; |
1443 | else | 1443 | else |
1444 | cp->cpcmd &= ~RxVlanOn; | 1444 | cp->cpcmd &= ~RxVlanOn; |
@@ -1955,14 +1955,14 @@ static int cp_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) | |||
1955 | dev->ethtool_ops = &cp_ethtool_ops; | 1955 | dev->ethtool_ops = &cp_ethtool_ops; |
1956 | dev->watchdog_timeo = TX_TIMEOUT; | 1956 | dev->watchdog_timeo = TX_TIMEOUT; |
1957 | 1957 | ||
1958 | dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | 1958 | dev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX; |
1959 | 1959 | ||
1960 | if (pci_using_dac) | 1960 | if (pci_using_dac) |
1961 | dev->features |= NETIF_F_HIGHDMA; | 1961 | dev->features |= NETIF_F_HIGHDMA; |
1962 | 1962 | ||
1963 | /* disabled by default until verified */ | 1963 | /* disabled by default until verified */ |
1964 | dev->hw_features |= NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO | | 1964 | dev->hw_features |= NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO | |
1965 | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | 1965 | NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX; |
1966 | dev->vlan_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO | | 1966 | dev->vlan_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO | |
1967 | NETIF_F_HIGHDMA; | 1967 | NETIF_F_HIGHDMA; |
1968 | 1968 | ||
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c index 9a1bc1a23854..86d5d7909d10 100644 --- a/drivers/net/ethernet/realtek/r8169.c +++ b/drivers/net/ethernet/realtek/r8169.c | |||
@@ -1793,16 +1793,17 @@ static void __rtl8169_set_features(struct net_device *dev, | |||
1793 | netdev_features_t changed = features ^ dev->features; | 1793 | netdev_features_t changed = features ^ dev->features; |
1794 | void __iomem *ioaddr = tp->mmio_addr; | 1794 | void __iomem *ioaddr = tp->mmio_addr; |
1795 | 1795 | ||
1796 | if (!(changed & (NETIF_F_RXALL | NETIF_F_RXCSUM | NETIF_F_HW_VLAN_RX))) | 1796 | if (!(changed & (NETIF_F_RXALL | NETIF_F_RXCSUM | |
1797 | NETIF_F_HW_VLAN_CTAG_RX))) | ||
1797 | return; | 1798 | return; |
1798 | 1799 | ||
1799 | if (changed & (NETIF_F_RXCSUM | NETIF_F_HW_VLAN_RX)) { | 1800 | if (changed & (NETIF_F_RXCSUM | NETIF_F_HW_VLAN_CTAG_RX)) { |
1800 | if (features & NETIF_F_RXCSUM) | 1801 | if (features & NETIF_F_RXCSUM) |
1801 | tp->cp_cmd |= RxChkSum; | 1802 | tp->cp_cmd |= RxChkSum; |
1802 | else | 1803 | else |
1803 | tp->cp_cmd &= ~RxChkSum; | 1804 | tp->cp_cmd &= ~RxChkSum; |
1804 | 1805 | ||
1805 | if (dev->features & NETIF_F_HW_VLAN_RX) | 1806 | if (dev->features & NETIF_F_HW_VLAN_CTAG_RX) |
1806 | tp->cp_cmd |= RxVlan; | 1807 | tp->cp_cmd |= RxVlan; |
1807 | else | 1808 | else |
1808 | tp->cp_cmd &= ~RxVlan; | 1809 | tp->cp_cmd &= ~RxVlan; |
@@ -7036,16 +7037,17 @@ rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
7036 | /* don't enable SG, IP_CSUM and TSO by default - it might not work | 7037 | /* don't enable SG, IP_CSUM and TSO by default - it might not work |
7037 | * properly for all devices */ | 7038 | * properly for all devices */ |
7038 | dev->features |= NETIF_F_RXCSUM | | 7039 | dev->features |= NETIF_F_RXCSUM | |
7039 | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | 7040 | NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX; |
7040 | 7041 | ||
7041 | dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO | | 7042 | dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO | |
7042 | NETIF_F_RXCSUM | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | 7043 | NETIF_F_RXCSUM | NETIF_F_HW_VLAN_CTAG_TX | |
7044 | NETIF_F_HW_VLAN_CTAG_RX; | ||
7043 | dev->vlan_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO | | 7045 | dev->vlan_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO | |
7044 | NETIF_F_HIGHDMA; | 7046 | NETIF_F_HIGHDMA; |
7045 | 7047 | ||
7046 | if (tp->mac_version == RTL_GIGA_MAC_VER_05) | 7048 | if (tp->mac_version == RTL_GIGA_MAC_VER_05) |
7047 | /* 8110SCd requires hardware Rx VLAN - disallow toggling */ | 7049 | /* 8110SCd requires hardware Rx VLAN - disallow toggling */ |
7048 | dev->hw_features &= ~NETIF_F_HW_VLAN_RX; | 7050 | dev->hw_features &= ~NETIF_F_HW_VLAN_CTAG_RX; |
7049 | 7051 | ||
7050 | dev->hw_features |= NETIF_F_RXALL; | 7052 | dev->hw_features |= NETIF_F_RXALL; |
7051 | dev->hw_features |= NETIF_F_RXFCS; | 7053 | dev->hw_features |= NETIF_F_RXFCS; |
diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c index a7499cbf4503..3d4a1ed0a7ab 100644 --- a/drivers/net/ethernet/renesas/sh_eth.c +++ b/drivers/net/ethernet/renesas/sh_eth.c | |||
@@ -2749,7 +2749,7 @@ static int sh_eth_drv_probe(struct platform_device *pdev) | |||
2749 | goto out_release; | 2749 | goto out_release; |
2750 | } | 2750 | } |
2751 | mdp->port = devno % 2; | 2751 | mdp->port = devno % 2; |
2752 | ndev->features = NETIF_F_HW_VLAN_FILTER; | 2752 | ndev->features = NETIF_F_HW_VLAN_CTAG_FILTER; |
2753 | } | 2753 | } |
2754 | 2754 | ||
2755 | /* initialize first or needed device */ | 2755 | /* initialize first or needed device */ |
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 71b64857e3a6..618446ae1ec1 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | |||
@@ -2679,7 +2679,7 @@ struct stmmac_priv *stmmac_dvr_probe(struct device *device, | |||
2679 | ndev->watchdog_timeo = msecs_to_jiffies(watchdog); | 2679 | ndev->watchdog_timeo = msecs_to_jiffies(watchdog); |
2680 | #ifdef STMMAC_VLAN_TAG_USED | 2680 | #ifdef STMMAC_VLAN_TAG_USED |
2681 | /* Both mac100 and gmac support receive VLAN tag detection */ | 2681 | /* Both mac100 and gmac support receive VLAN tag detection */ |
2682 | ndev->features |= NETIF_F_HW_VLAN_RX; | 2682 | ndev->features |= NETIF_F_HW_VLAN_CTAG_RX; |
2683 | #endif | 2683 | #endif |
2684 | priv->msg_enable = netif_msg_init(debug, default_msg_level); | 2684 | priv->msg_enable = netif_msg_init(debug, default_msg_level); |
2685 | 2685 | ||
diff --git a/drivers/net/ethernet/tehuti/tehuti.c b/drivers/net/ethernet/tehuti/tehuti.c index e8824cea093b..5ca4b33fc4c1 100644 --- a/drivers/net/ethernet/tehuti/tehuti.c +++ b/drivers/net/ethernet/tehuti/tehuti.c | |||
@@ -2017,12 +2017,12 @@ bdx_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
2017 | * so we can have them same for all ports of the board */ | 2017 | * so we can have them same for all ports of the board */ |
2018 | ndev->if_port = port; | 2018 | ndev->if_port = port; |
2019 | ndev->features = NETIF_F_IP_CSUM | NETIF_F_SG | NETIF_F_TSO | 2019 | ndev->features = NETIF_F_IP_CSUM | NETIF_F_SG | NETIF_F_TSO |
2020 | | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX | | 2020 | | NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX | |
2021 | NETIF_F_HW_VLAN_FILTER | NETIF_F_RXCSUM | 2021 | NETIF_F_HW_VLAN_CTAG_FILTER | NETIF_F_RXCSUM |
2022 | /*| NETIF_F_FRAGLIST */ | 2022 | /*| NETIF_F_FRAGLIST */ |
2023 | ; | 2023 | ; |
2024 | ndev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG | | 2024 | ndev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG | |
2025 | NETIF_F_TSO | NETIF_F_HW_VLAN_TX; | 2025 | NETIF_F_TSO | NETIF_F_HW_VLAN_CTAG_TX; |
2026 | 2026 | ||
2027 | if (pci_using_dac) | 2027 | if (pci_using_dac) |
2028 | ndev->features |= NETIF_F_HIGHDMA; | 2028 | ndev->features |= NETIF_F_HIGHDMA; |
diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c index 1d740423a053..084992981cef 100644 --- a/drivers/net/ethernet/ti/cpsw.c +++ b/drivers/net/ethernet/ti/cpsw.c | |||
@@ -1599,7 +1599,7 @@ static int cpsw_probe_dual_emac(struct platform_device *pdev, | |||
1599 | priv_sl2->num_irqs = priv->num_irqs; | 1599 | priv_sl2->num_irqs = priv->num_irqs; |
1600 | } | 1600 | } |
1601 | 1601 | ||
1602 | ndev->features |= NETIF_F_HW_VLAN_FILTER; | 1602 | ndev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; |
1603 | 1603 | ||
1604 | ndev->netdev_ops = &cpsw_netdev_ops; | 1604 | ndev->netdev_ops = &cpsw_netdev_ops; |
1605 | SET_ETHTOOL_OPS(ndev, &cpsw_ethtool_ops); | 1605 | SET_ETHTOOL_OPS(ndev, &cpsw_ethtool_ops); |
@@ -1837,7 +1837,7 @@ static int cpsw_probe(struct platform_device *pdev) | |||
1837 | k++; | 1837 | k++; |
1838 | } | 1838 | } |
1839 | 1839 | ||
1840 | ndev->features |= NETIF_F_HW_VLAN_FILTER; | 1840 | ndev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; |
1841 | 1841 | ||
1842 | ndev->netdev_ops = &cpsw_netdev_ops; | 1842 | ndev->netdev_ops = &cpsw_netdev_ops; |
1843 | SET_ETHTOOL_OPS(ndev, &cpsw_ethtool_ops); | 1843 | SET_ETHTOOL_OPS(ndev, &cpsw_ethtool_ops); |
diff --git a/drivers/net/ethernet/toshiba/spider_net.c b/drivers/net/ethernet/toshiba/spider_net.c index fef6b59e69c9..c655fe60121e 100644 --- a/drivers/net/ethernet/toshiba/spider_net.c +++ b/drivers/net/ethernet/toshiba/spider_net.c | |||
@@ -2329,8 +2329,8 @@ spider_net_setup_netdev(struct spider_net_card *card) | |||
2329 | if (SPIDER_NET_RX_CSUM_DEFAULT) | 2329 | if (SPIDER_NET_RX_CSUM_DEFAULT) |
2330 | netdev->features |= NETIF_F_RXCSUM; | 2330 | netdev->features |= NETIF_F_RXCSUM; |
2331 | netdev->features |= NETIF_F_IP_CSUM | NETIF_F_LLTX; | 2331 | netdev->features |= NETIF_F_IP_CSUM | NETIF_F_LLTX; |
2332 | /* some time: NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX | | 2332 | /* some time: NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX | |
2333 | * NETIF_F_HW_VLAN_FILTER */ | 2333 | * NETIF_F_HW_VLAN_CTAG_FILTER */ |
2334 | 2334 | ||
2335 | netdev->irq = card->pdev->irq; | 2335 | netdev->irq = card->pdev->irq; |
2336 | card->num_rx_ints = 0; | 2336 | card->num_rx_ints = 0; |
diff --git a/drivers/net/ethernet/via/via-rhine.c b/drivers/net/ethernet/via/via-rhine.c index 185c721c52d7..37b02c3768be 100644 --- a/drivers/net/ethernet/via/via-rhine.c +++ b/drivers/net/ethernet/via/via-rhine.c | |||
@@ -1026,8 +1026,9 @@ static int rhine_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
1026 | dev->features |= NETIF_F_SG|NETIF_F_HW_CSUM; | 1026 | dev->features |= NETIF_F_SG|NETIF_F_HW_CSUM; |
1027 | 1027 | ||
1028 | if (pdev->revision >= VT6105M) | 1028 | if (pdev->revision >= VT6105M) |
1029 | dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX | | 1029 | dev->features |= NETIF_F_HW_VLAN_CTAG_TX | |
1030 | NETIF_F_HW_VLAN_FILTER; | 1030 | NETIF_F_HW_VLAN_CTAG_RX | |
1031 | NETIF_F_HW_VLAN_CTAG_FILTER; | ||
1031 | 1032 | ||
1032 | /* dev->name not defined before register_netdev()! */ | 1033 | /* dev->name not defined before register_netdev()! */ |
1033 | rc = register_netdev(dev); | 1034 | rc = register_netdev(dev); |
diff --git a/drivers/net/ethernet/via/via-velocity.c b/drivers/net/ethernet/via/via-velocity.c index 1bc7f9fd2583..c1c55a7da941 100644 --- a/drivers/net/ethernet/via/via-velocity.c +++ b/drivers/net/ethernet/via/via-velocity.c | |||
@@ -2810,9 +2810,10 @@ static int velocity_found1(struct pci_dev *pdev, | |||
2810 | dev->ethtool_ops = &velocity_ethtool_ops; | 2810 | dev->ethtool_ops = &velocity_ethtool_ops; |
2811 | netif_napi_add(dev, &vptr->napi, velocity_poll, VELOCITY_NAPI_WEIGHT); | 2811 | netif_napi_add(dev, &vptr->napi, velocity_poll, VELOCITY_NAPI_WEIGHT); |
2812 | 2812 | ||
2813 | dev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG | NETIF_F_HW_VLAN_TX; | 2813 | dev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG | |
2814 | dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_FILTER | | 2814 | NETIF_F_HW_VLAN_CTAG_TX; |
2815 | NETIF_F_HW_VLAN_RX | NETIF_F_IP_CSUM; | 2815 | dev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_FILTER | |
2816 | NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_IP_CSUM; | ||
2816 | 2817 | ||
2817 | ret = register_netdev(dev); | 2818 | ret = register_netdev(dev); |
2818 | if (ret < 0) | 2819 | if (ret < 0) |
diff --git a/drivers/net/ethernet/xilinx/ll_temac_main.c b/drivers/net/ethernet/xilinx/ll_temac_main.c index 4a7c60f4c83d..57c2e5ef2804 100644 --- a/drivers/net/ethernet/xilinx/ll_temac_main.c +++ b/drivers/net/ethernet/xilinx/ll_temac_main.c | |||
@@ -1018,9 +1018,9 @@ static int temac_of_probe(struct platform_device *op) | |||
1018 | ndev->features |= NETIF_F_HW_CSUM; /* Can checksum all the packets. */ | 1018 | ndev->features |= NETIF_F_HW_CSUM; /* Can checksum all the packets. */ |
1019 | ndev->features |= NETIF_F_IPV6_CSUM; /* Can checksum IPV6 TCP/UDP */ | 1019 | ndev->features |= NETIF_F_IPV6_CSUM; /* Can checksum IPV6 TCP/UDP */ |
1020 | ndev->features |= NETIF_F_HIGHDMA; /* Can DMA to high memory. */ | 1020 | ndev->features |= NETIF_F_HIGHDMA; /* Can DMA to high memory. */ |
1021 | ndev->features |= NETIF_F_HW_VLAN_TX; /* Transmit VLAN hw accel */ | 1021 | ndev->features |= NETIF_F_HW_VLAN_CTAG_TX; /* Transmit VLAN hw accel */ |
1022 | ndev->features |= NETIF_F_HW_VLAN_RX; /* Receive VLAN hw acceleration */ | 1022 | ndev->features |= NETIF_F_HW_VLAN_CTAG_RX; /* Receive VLAN hw acceleration */ |
1023 | ndev->features |= NETIF_F_HW_VLAN_FILTER; /* Receive VLAN filtering */ | 1023 | ndev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; /* Receive VLAN filtering */ |
1024 | ndev->features |= NETIF_F_VLAN_CHALLENGED; /* cannot handle VLAN pkts */ | 1024 | ndev->features |= NETIF_F_VLAN_CHALLENGED; /* cannot handle VLAN pkts */ |
1025 | ndev->features |= NETIF_F_GSO; /* Enable software GSO. */ | 1025 | ndev->features |= NETIF_F_GSO; /* Enable software GSO. */ |
1026 | ndev->features |= NETIF_F_MULTI_QUEUE; /* Has multiple TX/RX queues */ | 1026 | ndev->features |= NETIF_F_MULTI_QUEUE; /* Has multiple TX/RX queues */ |
diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c index 5f85205cd12b..4559bb8115bf 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c | |||
@@ -431,7 +431,7 @@ static int netvsc_probe(struct hv_device *dev, | |||
431 | 431 | ||
432 | /* TODO: Add GSO and Checksum offload */ | 432 | /* TODO: Add GSO and Checksum offload */ |
433 | net->hw_features = NETIF_F_SG; | 433 | net->hw_features = NETIF_F_SG; |
434 | net->features = NETIF_F_SG | NETIF_F_HW_VLAN_TX; | 434 | net->features = NETIF_F_SG | NETIF_F_HW_VLAN_CTAG_TX; |
435 | 435 | ||
436 | SET_ETHTOOL_OPS(net, ðtool_ops); | 436 | SET_ETHTOOL_OPS(net, ðtool_ops); |
437 | SET_NETDEV_DEV(net, &dev->device); | 437 | SET_NETDEV_DEV(net, &dev->device); |
diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c index 82164381f778..724ce7a36c9b 100644 --- a/drivers/net/ifb.c +++ b/drivers/net/ifb.c | |||
@@ -166,7 +166,7 @@ static const struct net_device_ops ifb_netdev_ops = { | |||
166 | 166 | ||
167 | #define IFB_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | NETIF_F_FRAGLIST | \ | 167 | #define IFB_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | NETIF_F_FRAGLIST | \ |
168 | NETIF_F_TSO_ECN | NETIF_F_TSO | NETIF_F_TSO6 | \ | 168 | NETIF_F_TSO_ECN | NETIF_F_TSO | NETIF_F_TSO6 | \ |
169 | NETIF_F_HIGHDMA | NETIF_F_HW_VLAN_TX) | 169 | NETIF_F_HIGHDMA | NETIF_F_HW_VLAN_CTAG_TX) |
170 | 170 | ||
171 | static void ifb_setup(struct net_device *dev) | 171 | static void ifb_setup(struct net_device *dev) |
172 | { | 172 | { |
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index 70af6dc07d40..fedd34cff91c 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c | |||
@@ -471,7 +471,7 @@ static struct lock_class_key macvlan_netdev_addr_lock_key; | |||
471 | (NETIF_F_SG | NETIF_F_ALL_CSUM | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST | \ | 471 | (NETIF_F_SG | NETIF_F_ALL_CSUM | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST | \ |
472 | NETIF_F_GSO | NETIF_F_TSO | NETIF_F_UFO | NETIF_F_GSO_ROBUST | \ | 472 | NETIF_F_GSO | NETIF_F_TSO | NETIF_F_UFO | NETIF_F_GSO_ROBUST | \ |
473 | NETIF_F_TSO_ECN | NETIF_F_TSO6 | NETIF_F_GRO | NETIF_F_RXCSUM | \ | 473 | NETIF_F_TSO_ECN | NETIF_F_TSO6 | NETIF_F_GRO | NETIF_F_RXCSUM | \ |
474 | NETIF_F_HW_VLAN_FILTER) | 474 | NETIF_F_HW_VLAN_CTAG_FILTER) |
475 | 475 | ||
476 | #define MACVLAN_STATE_MASK \ | 476 | #define MACVLAN_STATE_MASK \ |
477 | ((1<<__LINK_STATE_NOCARRIER) | (1<<__LINK_STATE_DORMANT)) | 477 | ((1<<__LINK_STATE_NOCARRIER) | (1<<__LINK_STATE_DORMANT)) |
diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c index 9a31e8e50fac..9290eb23d664 100644 --- a/drivers/net/team/team.c +++ b/drivers/net/team/team.c | |||
@@ -1841,9 +1841,9 @@ static void team_setup(struct net_device *dev) | |||
1841 | dev->features |= NETIF_F_LLTX; | 1841 | dev->features |= NETIF_F_LLTX; |
1842 | dev->features |= NETIF_F_GRO; | 1842 | dev->features |= NETIF_F_GRO; |
1843 | dev->hw_features = TEAM_VLAN_FEATURES | | 1843 | dev->hw_features = TEAM_VLAN_FEATURES | |
1844 | NETIF_F_HW_VLAN_TX | | 1844 | NETIF_F_HW_VLAN_CTAG_TX | |
1845 | NETIF_F_HW_VLAN_RX | | 1845 | NETIF_F_HW_VLAN_CTAG_RX | |
1846 | NETIF_F_HW_VLAN_FILTER; | 1846 | NETIF_F_HW_VLAN_CTAG_FILTER; |
1847 | 1847 | ||
1848 | dev->hw_features &= ~(NETIF_F_ALL_CSUM & ~NETIF_F_HW_CSUM); | 1848 | dev->hw_features &= ~(NETIF_F_ALL_CSUM & ~NETIF_F_HW_CSUM); |
1849 | dev->features |= dev->hw_features; | 1849 | dev->features |= dev->hw_features; |
diff --git a/drivers/net/usb/cdc_mbim.c b/drivers/net/usb/cdc_mbim.c index 16c842997291..b7e9cd7ca6d5 100644 --- a/drivers/net/usb/cdc_mbim.c +++ b/drivers/net/usb/cdc_mbim.c | |||
@@ -101,7 +101,7 @@ static int cdc_mbim_bind(struct usbnet *dev, struct usb_interface *intf) | |||
101 | dev->net->flags |= IFF_NOARP; | 101 | dev->net->flags |= IFF_NOARP; |
102 | 102 | ||
103 | /* no need to put the VLAN tci in the packet headers */ | 103 | /* no need to put the VLAN tci in the packet headers */ |
104 | dev->net->features |= NETIF_F_HW_VLAN_TX; | 104 | dev->net->features |= NETIF_F_HW_VLAN_CTAG_TX; |
105 | err: | 105 | err: |
106 | return ret; | 106 | return ret; |
107 | } | 107 | } |
diff --git a/drivers/net/veth.c b/drivers/net/veth.c index 07a4af0aa3dc..f116c593d879 100644 --- a/drivers/net/veth.c +++ b/drivers/net/veth.c | |||
@@ -255,7 +255,7 @@ static const struct net_device_ops veth_netdev_ops = { | |||
255 | 255 | ||
256 | #define VETH_FEATURES (NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_ALL_TSO | \ | 256 | #define VETH_FEATURES (NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_ALL_TSO | \ |
257 | NETIF_F_HW_CSUM | NETIF_F_RXCSUM | NETIF_F_HIGHDMA | \ | 257 | NETIF_F_HW_CSUM | NETIF_F_RXCSUM | NETIF_F_HIGHDMA | \ |
258 | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX) | 258 | NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX) |
259 | 259 | ||
260 | static void veth_setup(struct net_device *dev) | 260 | static void veth_setup(struct net_device *dev) |
261 | { | 261 | { |
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 8fdfde6832ab..b61d57ab3c63 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c | |||
@@ -1376,7 +1376,7 @@ static int virtnet_find_vqs(struct virtnet_info *vi) | |||
1376 | if (vi->has_cvq) { | 1376 | if (vi->has_cvq) { |
1377 | vi->cvq = vqs[total_vqs - 1]; | 1377 | vi->cvq = vqs[total_vqs - 1]; |
1378 | if (virtio_has_feature(vi->vdev, VIRTIO_NET_F_CTRL_VLAN)) | 1378 | if (virtio_has_feature(vi->vdev, VIRTIO_NET_F_CTRL_VLAN)) |
1379 | vi->dev->features |= NETIF_F_HW_VLAN_FILTER; | 1379 | vi->dev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; |
1380 | } | 1380 | } |
1381 | 1381 | ||
1382 | for (i = 0; i < vi->max_queue_pairs; i++) { | 1382 | for (i = 0; i < vi->max_queue_pairs; i++) { |
diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c index eae7a03d4f9b..ba9bdad39986 100644 --- a/drivers/net/vmxnet3/vmxnet3_drv.c +++ b/drivers/net/vmxnet3/vmxnet3_drv.c | |||
@@ -2107,7 +2107,7 @@ vmxnet3_setup_driver_shared(struct vmxnet3_adapter *adapter) | |||
2107 | devRead->misc.uptFeatures |= UPT1_F_LRO; | 2107 | devRead->misc.uptFeatures |= UPT1_F_LRO; |
2108 | devRead->misc.maxNumRxSG = cpu_to_le16(1 + MAX_SKB_FRAGS); | 2108 | devRead->misc.maxNumRxSG = cpu_to_le16(1 + MAX_SKB_FRAGS); |
2109 | } | 2109 | } |
2110 | if (adapter->netdev->features & NETIF_F_HW_VLAN_RX) | 2110 | if (adapter->netdev->features & NETIF_F_HW_VLAN_CTAG_RX) |
2111 | devRead->misc.uptFeatures |= UPT1_F_RXVLAN; | 2111 | devRead->misc.uptFeatures |= UPT1_F_RXVLAN; |
2112 | 2112 | ||
2113 | devRead->misc.mtu = cpu_to_le32(adapter->netdev->mtu); | 2113 | devRead->misc.mtu = cpu_to_le32(adapter->netdev->mtu); |
@@ -2669,14 +2669,15 @@ vmxnet3_declare_features(struct vmxnet3_adapter *adapter, bool dma64) | |||
2669 | struct net_device *netdev = adapter->netdev; | 2669 | struct net_device *netdev = adapter->netdev; |
2670 | 2670 | ||
2671 | netdev->hw_features = NETIF_F_SG | NETIF_F_RXCSUM | | 2671 | netdev->hw_features = NETIF_F_SG | NETIF_F_RXCSUM | |
2672 | NETIF_F_HW_CSUM | NETIF_F_HW_VLAN_TX | | 2672 | NETIF_F_HW_CSUM | NETIF_F_HW_VLAN_CTAG_TX | |
2673 | NETIF_F_HW_VLAN_RX | NETIF_F_TSO | NETIF_F_TSO6 | | 2673 | NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_TSO | NETIF_F_TSO6 | |
2674 | NETIF_F_LRO; | 2674 | NETIF_F_LRO; |
2675 | if (dma64) | 2675 | if (dma64) |
2676 | netdev->hw_features |= NETIF_F_HIGHDMA; | 2676 | netdev->hw_features |= NETIF_F_HIGHDMA; |
2677 | netdev->vlan_features = netdev->hw_features & | 2677 | netdev->vlan_features = netdev->hw_features & |
2678 | ~(NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX); | 2678 | ~(NETIF_F_HW_VLAN_CTAG_TX | |
2679 | netdev->features = netdev->hw_features | NETIF_F_HW_VLAN_FILTER; | 2679 | NETIF_F_HW_VLAN_CTAG_RX); |
2680 | netdev->features = netdev->hw_features | NETIF_F_HW_VLAN_CTAG_FILTER; | ||
2680 | } | 2681 | } |
2681 | 2682 | ||
2682 | 2683 | ||
diff --git a/drivers/net/vmxnet3/vmxnet3_ethtool.c b/drivers/net/vmxnet3/vmxnet3_ethtool.c index 63a124340cbe..600ab56c0008 100644 --- a/drivers/net/vmxnet3/vmxnet3_ethtool.c +++ b/drivers/net/vmxnet3/vmxnet3_ethtool.c | |||
@@ -263,7 +263,8 @@ int vmxnet3_set_features(struct net_device *netdev, netdev_features_t features) | |||
263 | unsigned long flags; | 263 | unsigned long flags; |
264 | netdev_features_t changed = features ^ netdev->features; | 264 | netdev_features_t changed = features ^ netdev->features; |
265 | 265 | ||
266 | if (changed & (NETIF_F_RXCSUM | NETIF_F_LRO | NETIF_F_HW_VLAN_RX)) { | 266 | if (changed & (NETIF_F_RXCSUM | NETIF_F_LRO | |
267 | NETIF_F_HW_VLAN_CTAG_RX)) { | ||
267 | if (features & NETIF_F_RXCSUM) | 268 | if (features & NETIF_F_RXCSUM) |
268 | adapter->shared->devRead.misc.uptFeatures |= | 269 | adapter->shared->devRead.misc.uptFeatures |= |
269 | UPT1_F_RXCSUM; | 270 | UPT1_F_RXCSUM; |
@@ -279,7 +280,7 @@ int vmxnet3_set_features(struct net_device *netdev, netdev_features_t features) | |||
279 | adapter->shared->devRead.misc.uptFeatures &= | 280 | adapter->shared->devRead.misc.uptFeatures &= |
280 | ~UPT1_F_LRO; | 281 | ~UPT1_F_LRO; |
281 | 282 | ||
282 | if (features & NETIF_F_HW_VLAN_RX) | 283 | if (features & NETIF_F_HW_VLAN_CTAG_RX) |
283 | adapter->shared->devRead.misc.uptFeatures |= | 284 | adapter->shared->devRead.misc.uptFeatures |= |
284 | UPT1_F_RXVLAN; | 285 | UPT1_F_RXVLAN; |
285 | else | 286 | else |