aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2013-04-18 22:04:27 -0400
committerDavid S. Miller <davem@davemloft.net>2013-04-19 14:45:26 -0400
commitf646968f8f7c624587de729115d802372b9063dd (patch)
tree2b8c6604306f5e74af9e16c17e2b611610982b65
parentc2962897c94605bc8f158a37dee8d867dda9f116 (diff)
net: vlan: rename NETIF_F_HW_VLAN_* feature flags to NETIF_F_HW_VLAN_CTAG_*
Rename the hardware VLAN acceleration features to include "CTAG" to indicate that they only support CTAGs. Follow up patches will introduce 802.1ad server provider tagging (STAGs) and require the distinction for hardware not supporting acclerating both. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/infiniband/hw/nes/nes_nic.c14
-rw-r--r--drivers/net/bonding/bond_main.c6
-rw-r--r--drivers/net/ethernet/3com/typhoon.c4
-rw-r--r--drivers/net/ethernet/adaptec/starfire.c2
-rw-r--r--drivers/net/ethernet/alteon/acenic.c2
-rw-r--r--drivers/net/ethernet/amd/amd8111e.c4
-rw-r--r--drivers/net/ethernet/atheros/atl1c/atl1c_main.c22
-rw-r--r--drivers/net/ethernet/atheros/atl1e/atl1e_main.c14
-rw-r--r--drivers/net/ethernet/atheros/atlx/atl1.c4
-rw-r--r--drivers/net/ethernet/atheros/atlx/atl2.c16
-rw-r--r--drivers/net/ethernet/atheros/atlx/atlx.c10
-rw-r--r--drivers/net/ethernet/broadcom/bnx2.c10
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c4
-rw-r--r--drivers/net/ethernet/broadcom/tg3.c2
-rw-r--r--drivers/net/ethernet/brocade/bna/bnad.c4
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/cxgb2.c13
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/sge.c2
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c20
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c10
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c15
-rw-r--r--drivers/net/ethernet/cisco/enic/enic_main.c4
-rw-r--r--drivers/net/ethernet/emulex/benet/be_main.c4
-rw-r--r--drivers/net/ethernet/freescale/gianfar.c15
-rw-r--r--drivers/net/ethernet/freescale/gianfar_ethtool.c2
-rw-r--r--drivers/net/ethernet/ibm/ehea/ehea_main.c8
-rw-r--r--drivers/net/ethernet/intel/e1000/e1000_main.c16
-rw-r--r--drivers/net/ethernet/intel/e1000e/netdev.c10
-rw-r--r--drivers/net/ethernet/intel/igb/igb_main.c18
-rw-r--r--drivers/net/ethernet/intel/igbvf/netdev.c6
-rw-r--r--drivers/net/ethernet/intel/ixgb/ixgb_main.c14
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_main.c12
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c2
-rw-r--r--drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c6
-rw-r--r--drivers/net/ethernet/jme.c4
-rw-r--r--drivers/net/ethernet/marvell/sky2.c9
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_netdev.c4
-rw-r--r--drivers/net/ethernet/myricom/myri10ge/myri10ge.c7
-rw-r--r--drivers/net/ethernet/natsemi/ns83820.c2
-rw-r--r--drivers/net/ethernet/neterion/s2io.c2
-rw-r--r--drivers/net/ethernet/neterion/vxge/vxge-main.c4
-rw-r--r--drivers/net/ethernet/nvidia/forcedeth.c20
-rw-r--r--drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c2
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c4
-rw-r--r--drivers/net/ethernet/qlogic/qlge/qlge_main.c16
-rw-r--r--drivers/net/ethernet/realtek/8139cp.c6
-rw-r--r--drivers/net/ethernet/realtek/r8169.c14
-rw-r--r--drivers/net/ethernet/renesas/sh_eth.c2
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac_main.c2
-rw-r--r--drivers/net/ethernet/tehuti/tehuti.c6
-rw-r--r--drivers/net/ethernet/ti/cpsw.c4
-rw-r--r--drivers/net/ethernet/toshiba/spider_net.c4
-rw-r--r--drivers/net/ethernet/via/via-rhine.c5
-rw-r--r--drivers/net/ethernet/via/via-velocity.c7
-rw-r--r--drivers/net/ethernet/xilinx/ll_temac_main.c6
-rw-r--r--drivers/net/hyperv/netvsc_drv.c2
-rw-r--r--drivers/net/ifb.c2
-rw-r--r--drivers/net/macvlan.c2
-rw-r--r--drivers/net/team/team.c6
-rw-r--r--drivers/net/usb/cdc_mbim.c2
-rw-r--r--drivers/net/veth.c2
-rw-r--r--drivers/net/virtio_net.c2
-rw-r--r--drivers/net/vmxnet3/vmxnet3_drv.c11
-rw-r--r--drivers/net/vmxnet3/vmxnet3_ethtool.c5
-rw-r--r--drivers/s390/net/qeth_l2_main.c2
-rw-r--r--drivers/s390/net/qeth_l3_main.c6
-rw-r--r--drivers/scsi/fcoe/fcoe.c2
-rw-r--r--include/linux/if_vlan.h4
-rw-r--r--include/linux/netdev_features.h12
-rw-r--r--include/linux/netdevice.h6
-rw-r--r--net/8021q/vlan.c6
-rw-r--r--net/8021q/vlan_core.c4
-rw-r--r--net/8021q/vlan_dev.c2
-rw-r--r--net/bridge/br_device.c4
-rw-r--r--net/bridge/br_vlan.c6
-rw-r--r--net/core/dev.c9
-rw-r--r--net/core/ethtool.c25
-rw-r--r--net/core/netpoll.c2
-rw-r--r--net/openvswitch/vport-internal_dev.c2
78 files changed, 285 insertions, 266 deletions
diff --git a/drivers/infiniband/hw/nes/nes_nic.c b/drivers/infiniband/hw/nes/nes_nic.c
index 85cf4d1ac442..49eb5111d2cd 100644
--- a/drivers/infiniband/hw/nes/nes_nic.c
+++ b/drivers/infiniband/hw/nes/nes_nic.c
@@ -1599,7 +1599,7 @@ static void nes_vlan_mode(struct net_device *netdev, struct nes_device *nesdev,
1599 1599
1600 /* Enable/Disable VLAN Stripping */ 1600 /* Enable/Disable VLAN Stripping */
1601 u32temp = nes_read_indexed(nesdev, NES_IDX_PCIX_DIAG); 1601 u32temp = nes_read_indexed(nesdev, NES_IDX_PCIX_DIAG);
1602 if (features & NETIF_F_HW_VLAN_RX) 1602 if (features & NETIF_F_HW_VLAN_CTAG_RX)
1603 u32temp &= 0xfdffffff; 1603 u32temp &= 0xfdffffff;
1604 else 1604 else
1605 u32temp |= 0x02000000; 1605 u32temp |= 0x02000000;
@@ -1614,10 +1614,10 @@ static netdev_features_t nes_fix_features(struct net_device *netdev, netdev_feat
1614 * Since there is no support for separate rx/tx vlan accel 1614 * Since there is no support for separate rx/tx vlan accel
1615 * enable/disable make sure tx flag is always in same state as rx. 1615 * enable/disable make sure tx flag is always in same state as rx.
1616 */ 1616 */
1617 if (features & NETIF_F_HW_VLAN_RX) 1617 if (features & NETIF_F_HW_VLAN_CTAG_RX)
1618 features |= NETIF_F_HW_VLAN_TX; 1618 features |= NETIF_F_HW_VLAN_CTAG_TX;
1619 else 1619 else
1620 features &= ~NETIF_F_HW_VLAN_TX; 1620 features &= ~NETIF_F_HW_VLAN_CTAG_TX;
1621 1621
1622 return features; 1622 return features;
1623} 1623}
@@ -1628,7 +1628,7 @@ static int nes_set_features(struct net_device *netdev, netdev_features_t feature
1628 struct nes_device *nesdev = nesvnic->nesdev; 1628 struct nes_device *nesdev = nesvnic->nesdev;
1629 u32 changed = netdev->features ^ features; 1629 u32 changed = netdev->features ^ features;
1630 1630
1631 if (changed & NETIF_F_HW_VLAN_RX) 1631 if (changed & NETIF_F_HW_VLAN_CTAG_RX)
1632 nes_vlan_mode(netdev, nesdev, features); 1632 nes_vlan_mode(netdev, nesdev, features);
1633 1633
1634 return 0; 1634 return 0;
@@ -1706,11 +1706,11 @@ struct net_device *nes_netdev_init(struct nes_device *nesdev,
1706 netdev->dev_addr[4] = (u8)(u64temp>>8); 1706 netdev->dev_addr[4] = (u8)(u64temp>>8);
1707 netdev->dev_addr[5] = (u8)u64temp; 1707 netdev->dev_addr[5] = (u8)u64temp;
1708 1708
1709 netdev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_RXCSUM | NETIF_F_HW_VLAN_RX; 1709 netdev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_RXCSUM | NETIF_F_HW_VLAN_CTAG_RX;
1710 if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV)) 1710 if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV))
1711 netdev->hw_features |= NETIF_F_TSO; 1711 netdev->hw_features |= NETIF_F_TSO;
1712 1712
1713 netdev->features = netdev->hw_features | NETIF_F_HIGHDMA | NETIF_F_HW_VLAN_TX; 1713 netdev->features = netdev->hw_features | NETIF_F_HIGHDMA | NETIF_F_HW_VLAN_CTAG_TX;
1714 netdev->hw_features |= NETIF_F_LRO; 1714 netdev->hw_features |= NETIF_F_LRO;
1715 1715
1716 nes_debug(NES_DBG_INIT, "nesvnic = %p, reported features = 0x%lX, QPid = %d," 1716 nes_debug(NES_DBG_INIT, "nesvnic = %p, reported features = 0x%lX, QPid = %d,"
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
418static void __atl1c_vlan_mode(netdev_features_t features, u32 *mac_ctrl_data) 418static 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
316static void __atl1e_vlan_mode(netdev_features_t features, u32 *mac_ctrl_data) 316static 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
364static void __atl2_vlan_mode(netdev_features_t features, u32 *ctrl) 364static 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
221static void __atlx_vlan_mode(netdev_features_t features, u32 *ctrl) 221static 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(&regs->tctrl); 2354 tempval = gfar_read(&regs->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(&regs->tctrl, tempval); 2361 gfar_write(&regs->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(&regs->rctrl); 2366 tempval = gfar_read(&regs->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
1142alloc_failed: 1142alloc_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, &ethtool_ops); 436 SET_ETHTOOL_OPS(net, &ethtool_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
171static void ifb_setup(struct net_device *dev) 171static 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;
105err: 105err:
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
260static void veth_setup(struct net_device *dev) 260static 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
diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c
index d690166efeaf..90ddd823605c 100644
--- a/drivers/s390/net/qeth_l2_main.c
+++ b/drivers/s390/net/qeth_l2_main.c
@@ -959,7 +959,7 @@ static int qeth_l2_setup_netdev(struct qeth_card *card)
959 SET_ETHTOOL_OPS(card->dev, &qeth_l2_ethtool_ops); 959 SET_ETHTOOL_OPS(card->dev, &qeth_l2_ethtool_ops);
960 else 960 else
961 SET_ETHTOOL_OPS(card->dev, &qeth_l2_osn_ops); 961 SET_ETHTOOL_OPS(card->dev, &qeth_l2_osn_ops);
962 card->dev->features |= NETIF_F_HW_VLAN_FILTER; 962 card->dev->features |= NETIF_F_HW_VLAN_CTAG_FILTER;
963 card->info.broadcast_capable = 1; 963 card->info.broadcast_capable = 1;
964 qeth_l2_request_initial_mac(card); 964 qeth_l2_request_initial_mac(card);
965 SET_NETDEV_DEV(card->dev, &card->gdev->dev); 965 SET_NETDEV_DEV(card->dev, &card->gdev->dev);
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c
index 8710337dab3e..04261bc08f20 100644
--- a/drivers/s390/net/qeth_l3_main.c
+++ b/drivers/s390/net/qeth_l3_main.c
@@ -3294,9 +3294,9 @@ static int qeth_l3_setup_netdev(struct qeth_card *card)
3294 card->dev->watchdog_timeo = QETH_TX_TIMEOUT; 3294 card->dev->watchdog_timeo = QETH_TX_TIMEOUT;
3295 card->dev->mtu = card->info.initial_mtu; 3295 card->dev->mtu = card->info.initial_mtu;
3296 SET_ETHTOOL_OPS(card->dev, &qeth_l3_ethtool_ops); 3296 SET_ETHTOOL_OPS(card->dev, &qeth_l3_ethtool_ops);
3297 card->dev->features |= NETIF_F_HW_VLAN_TX | 3297 card->dev->features |= NETIF_F_HW_VLAN_CTAG_TX |
3298 NETIF_F_HW_VLAN_RX | 3298 NETIF_F_HW_VLAN_CTAG_RX |
3299 NETIF_F_HW_VLAN_FILTER; 3299 NETIF_F_HW_VLAN_CTAG_FILTER;
3300 card->dev->priv_flags &= ~IFF_XMIT_DST_RELEASE; 3300 card->dev->priv_flags &= ~IFF_XMIT_DST_RELEASE;
3301 card->dev->gso_max_size = 15 * PAGE_SIZE; 3301 card->dev->gso_max_size = 15 * PAGE_SIZE;
3302 3302
diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c
index 9bfdc9a3f897..292b24f9bf93 100644
--- a/drivers/scsi/fcoe/fcoe.c
+++ b/drivers/scsi/fcoe/fcoe.c
@@ -1655,7 +1655,7 @@ static int fcoe_xmit(struct fc_lport *lport, struct fc_frame *fp)
1655 skb->priority = fcoe->priority; 1655 skb->priority = fcoe->priority;
1656 1656
1657 if (fcoe->netdev->priv_flags & IFF_802_1Q_VLAN && 1657 if (fcoe->netdev->priv_flags & IFF_802_1Q_VLAN &&
1658 fcoe->realdev->features & NETIF_F_HW_VLAN_TX) { 1658 fcoe->realdev->features & NETIF_F_HW_VLAN_CTAG_TX) {
1659 skb->vlan_tci = VLAN_TAG_PRESENT | 1659 skb->vlan_tci = VLAN_TAG_PRESENT |
1660 vlan_dev_vlan_id(fcoe->netdev); 1660 vlan_dev_vlan_id(fcoe->netdev);
1661 skb->dev = fcoe->realdev; 1661 skb->dev = fcoe->realdev;
diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h
index 70962f3fdb79..fee28291a824 100644
--- a/include/linux/if_vlan.h
+++ b/include/linux/if_vlan.h
@@ -238,7 +238,7 @@ static inline struct sk_buff *__vlan_hwaccel_put_tag(struct sk_buff *skb,
238 */ 238 */
239static inline struct sk_buff *vlan_put_tag(struct sk_buff *skb, u16 vlan_tci) 239static inline struct sk_buff *vlan_put_tag(struct sk_buff *skb, u16 vlan_tci)
240{ 240{
241 if (skb->dev->features & NETIF_F_HW_VLAN_TX) { 241 if (skb->dev->features & NETIF_F_HW_VLAN_CTAG_TX) {
242 return __vlan_hwaccel_put_tag(skb, vlan_tci); 242 return __vlan_hwaccel_put_tag(skb, vlan_tci);
243 } else { 243 } else {
244 return __vlan_put_tag(skb, vlan_tci); 244 return __vlan_put_tag(skb, vlan_tci);
@@ -294,7 +294,7 @@ static inline int __vlan_hwaccel_get_tag(const struct sk_buff *skb,
294 */ 294 */
295static inline int vlan_get_tag(const struct sk_buff *skb, u16 *vlan_tci) 295static inline int vlan_get_tag(const struct sk_buff *skb, u16 *vlan_tci)
296{ 296{
297 if (skb->dev->features & NETIF_F_HW_VLAN_TX) { 297 if (skb->dev->features & NETIF_F_HW_VLAN_CTAG_TX) {
298 return __vlan_hwaccel_get_tag(skb, vlan_tci); 298 return __vlan_hwaccel_get_tag(skb, vlan_tci);
299 } else { 299 } else {
300 return __vlan_get_tag(skb, vlan_tci); 300 return __vlan_get_tag(skb, vlan_tci);
diff --git a/include/linux/netdev_features.h b/include/linux/netdev_features.h
index d6ee2d008ee4..785913b8983d 100644
--- a/include/linux/netdev_features.h
+++ b/include/linux/netdev_features.h
@@ -22,9 +22,9 @@ enum {
22 NETIF_F_IPV6_CSUM_BIT, /* Can checksum TCP/UDP over IPV6 */ 22 NETIF_F_IPV6_CSUM_BIT, /* Can checksum TCP/UDP over IPV6 */
23 NETIF_F_HIGHDMA_BIT, /* Can DMA to high memory. */ 23 NETIF_F_HIGHDMA_BIT, /* Can DMA to high memory. */
24 NETIF_F_FRAGLIST_BIT, /* Scatter/gather IO. */ 24 NETIF_F_FRAGLIST_BIT, /* Scatter/gather IO. */
25 NETIF_F_HW_VLAN_TX_BIT, /* Transmit VLAN hw acceleration */ 25 NETIF_F_HW_VLAN_CTAG_TX_BIT, /* Transmit VLAN CTAG HW acceleration */
26 NETIF_F_HW_VLAN_RX_BIT, /* Receive VLAN hw acceleration */ 26 NETIF_F_HW_VLAN_CTAG_RX_BIT, /* Receive VLAN CTAG HW acceleration */
27 NETIF_F_HW_VLAN_FILTER_BIT, /* Receive filtering on VLAN */ 27 NETIF_F_HW_VLAN_CTAG_FILTER_BIT,/* Receive filtering on VLAN CTAGs */
28 NETIF_F_VLAN_CHALLENGED_BIT, /* Device cannot handle VLAN packets */ 28 NETIF_F_VLAN_CHALLENGED_BIT, /* Device cannot handle VLAN packets */
29 NETIF_F_GSO_BIT, /* Enable software GSO. */ 29 NETIF_F_GSO_BIT, /* Enable software GSO. */
30 NETIF_F_LLTX_BIT, /* LockLess TX - deprecated. Please */ 30 NETIF_F_LLTX_BIT, /* LockLess TX - deprecated. Please */
@@ -80,9 +80,9 @@ enum {
80#define NETIF_F_GSO_ROBUST __NETIF_F(GSO_ROBUST) 80#define NETIF_F_GSO_ROBUST __NETIF_F(GSO_ROBUST)
81#define NETIF_F_HIGHDMA __NETIF_F(HIGHDMA) 81#define NETIF_F_HIGHDMA __NETIF_F(HIGHDMA)
82#define NETIF_F_HW_CSUM __NETIF_F(HW_CSUM) 82#define NETIF_F_HW_CSUM __NETIF_F(HW_CSUM)
83#define NETIF_F_HW_VLAN_FILTER __NETIF_F(HW_VLAN_FILTER) 83#define NETIF_F_HW_VLAN_CTAG_FILTER __NETIF_F(HW_VLAN_CTAG_FILTER)
84#define NETIF_F_HW_VLAN_RX __NETIF_F(HW_VLAN_RX) 84#define NETIF_F_HW_VLAN_CTAG_RX __NETIF_F(HW_VLAN_CTAG_RX)
85#define NETIF_F_HW_VLAN_TX __NETIF_F(HW_VLAN_TX) 85#define NETIF_F_HW_VLAN_CTAG_TX __NETIF_F(HW_VLAN_CTAG_TX)
86#define NETIF_F_IP_CSUM __NETIF_F(IP_CSUM) 86#define NETIF_F_IP_CSUM __NETIF_F(IP_CSUM)
87#define NETIF_F_IPV6_CSUM __NETIF_F(IPV6_CSUM) 87#define NETIF_F_IPV6_CSUM __NETIF_F(IPV6_CSUM)
88#define NETIF_F_LLTX __NETIF_F(LLTX) 88#define NETIF_F_LLTX __NETIF_F(LLTX)
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 623b57b52195..7eb7e03ee417 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -785,11 +785,13 @@ struct netdev_fcoe_hbainfo {
785 * neither operation. 785 * neither operation.
786 * 786 *
787 * int (*ndo_vlan_rx_add_vid)(struct net_device *dev, unsigned short vid); 787 * int (*ndo_vlan_rx_add_vid)(struct net_device *dev, unsigned short vid);
788 * If device support VLAN filtering (dev->features & NETIF_F_HW_VLAN_FILTER) 788 * If device support VLAN filtering (dev->features &
789 * NETIF_F_HW_VLAN_CTAG_FILTER)
789 * this function is called when a VLAN id is registered. 790 * this function is called when a VLAN id is registered.
790 * 791 *
791 * int (*ndo_vlan_rx_kill_vid)(struct net_device *dev, unsigned short vid); 792 * int (*ndo_vlan_rx_kill_vid)(struct net_device *dev, unsigned short vid);
792 * If device support VLAN filtering (dev->features & NETIF_F_HW_VLAN_FILTER) 793 * If device support VLAN filtering (dev->features &
794 * NETIF_F_HW_VLAN_CTAG_FILTER)
793 * this function is called when a VLAN id is unregistered. 795 * this function is called when a VLAN id is unregistered.
794 * 796 *
795 * void (*ndo_poll_controller)(struct net_device *dev); 797 * void (*ndo_poll_controller)(struct net_device *dev);
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
index 85addcd9372b..d913feed0757 100644
--- a/net/8021q/vlan.c
+++ b/net/8021q/vlan.c
@@ -301,7 +301,7 @@ static void vlan_transfer_features(struct net_device *dev,
301{ 301{
302 vlandev->gso_max_size = dev->gso_max_size; 302 vlandev->gso_max_size = dev->gso_max_size;
303 303
304 if (dev->features & NETIF_F_HW_VLAN_TX) 304 if (dev->features & NETIF_F_HW_VLAN_CTAG_TX)
305 vlandev->hard_header_len = dev->hard_header_len; 305 vlandev->hard_header_len = dev->hard_header_len;
306 else 306 else
307 vlandev->hard_header_len = dev->hard_header_len + VLAN_HLEN; 307 vlandev->hard_header_len = dev->hard_header_len + VLAN_HLEN;
@@ -347,7 +347,7 @@ static int vlan_device_event(struct notifier_block *unused, unsigned long event,
347 __vlan_device_event(dev, event); 347 __vlan_device_event(dev, event);
348 348
349 if ((event == NETDEV_UP) && 349 if ((event == NETDEV_UP) &&
350 (dev->features & NETIF_F_HW_VLAN_FILTER)) { 350 (dev->features & NETIF_F_HW_VLAN_CTAG_FILTER)) {
351 pr_info("adding VLAN 0 to HW filter on device %s\n", 351 pr_info("adding VLAN 0 to HW filter on device %s\n",
352 dev->name); 352 dev->name);
353 vlan_vid_add(dev, 0); 353 vlan_vid_add(dev, 0);
@@ -415,7 +415,7 @@ static int vlan_device_event(struct notifier_block *unused, unsigned long event,
415 break; 415 break;
416 416
417 case NETDEV_DOWN: 417 case NETDEV_DOWN:
418 if (dev->features & NETIF_F_HW_VLAN_FILTER) 418 if (dev->features & NETIF_F_HW_VLAN_CTAG_FILTER)
419 vlan_vid_del(dev, 0); 419 vlan_vid_del(dev, 0);
420 420
421 /* Put all VLANs for this dev in the down state too. */ 421 /* Put all VLANs for this dev in the down state too. */
diff --git a/net/8021q/vlan_core.c b/net/8021q/vlan_core.c
index f3b6f515eba6..3df29d344704 100644
--- a/net/8021q/vlan_core.c
+++ b/net/8021q/vlan_core.c
@@ -225,7 +225,7 @@ static int __vlan_vid_add(struct vlan_info *vlan_info, unsigned short vid,
225 if (!vid_info) 225 if (!vid_info)
226 return -ENOMEM; 226 return -ENOMEM;
227 227
228 if (dev->features & NETIF_F_HW_VLAN_FILTER) { 228 if (dev->features & NETIF_F_HW_VLAN_CTAG_FILTER) {
229 err = ops->ndo_vlan_rx_add_vid(dev, vid); 229 err = ops->ndo_vlan_rx_add_vid(dev, vid);
230 if (err) { 230 if (err) {
231 kfree(vid_info); 231 kfree(vid_info);
@@ -282,7 +282,7 @@ static void __vlan_vid_del(struct vlan_info *vlan_info,
282 unsigned short vid = vid_info->vid; 282 unsigned short vid = vid_info->vid;
283 int err; 283 int err;
284 284
285 if (dev->features & NETIF_F_HW_VLAN_FILTER) { 285 if (dev->features & NETIF_F_HW_VLAN_CTAG_FILTER) {
286 err = ops->ndo_vlan_rx_kill_vid(dev, vid); 286 err = ops->ndo_vlan_rx_kill_vid(dev, vid);
287 if (err) { 287 if (err) {
288 pr_warn("failed to kill vid %d for device %s\n", 288 pr_warn("failed to kill vid %d for device %s\n",
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
index 19cf81bf9f69..5c4892a86410 100644
--- a/net/8021q/vlan_dev.c
+++ b/net/8021q/vlan_dev.c
@@ -583,7 +583,7 @@ static int vlan_dev_init(struct net_device *dev)
583#endif 583#endif
584 584
585 dev->needed_headroom = real_dev->needed_headroom; 585 dev->needed_headroom = real_dev->needed_headroom;
586 if (real_dev->features & NETIF_F_HW_VLAN_TX) { 586 if (real_dev->features & NETIF_F_HW_VLAN_CTAG_TX) {
587 dev->header_ops = real_dev->header_ops; 587 dev->header_ops = real_dev->header_ops;
588 dev->hard_header_len = real_dev->hard_header_len; 588 dev->hard_header_len = real_dev->hard_header_len;
589 } else { 589 } else {
diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c
index 314c73ed418f..967312803e41 100644
--- a/net/bridge/br_device.c
+++ b/net/bridge/br_device.c
@@ -348,10 +348,10 @@ void br_dev_setup(struct net_device *dev)
348 348
349 dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HIGHDMA | 349 dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HIGHDMA |
350 NETIF_F_GSO_MASK | NETIF_F_HW_CSUM | NETIF_F_LLTX | 350 NETIF_F_GSO_MASK | NETIF_F_HW_CSUM | NETIF_F_LLTX |
351 NETIF_F_NETNS_LOCAL | NETIF_F_HW_VLAN_TX; 351 NETIF_F_NETNS_LOCAL | NETIF_F_HW_VLAN_CTAG_TX;
352 dev->hw_features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HIGHDMA | 352 dev->hw_features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HIGHDMA |
353 NETIF_F_GSO_MASK | NETIF_F_HW_CSUM | 353 NETIF_F_GSO_MASK | NETIF_F_HW_CSUM |
354 NETIF_F_HW_VLAN_TX; 354 NETIF_F_HW_VLAN_CTAG_TX;
355 355
356 br->dev = dev; 356 br->dev = dev;
357 spin_lock_init(&br->lock); 357 spin_lock_init(&br->lock);
diff --git a/net/bridge/br_vlan.c b/net/bridge/br_vlan.c
index 93dde75923f0..0b3dbbec80d0 100644
--- a/net/bridge/br_vlan.c
+++ b/net/bridge/br_vlan.c
@@ -54,7 +54,7 @@ static int __vlan_add(struct net_port_vlans *v, u16 vid, u16 flags)
54 dev = br->dev; 54 dev = br->dev;
55 } 55 }
56 56
57 if (p && (dev->features & NETIF_F_HW_VLAN_FILTER)) { 57 if (p && (dev->features & NETIF_F_HW_VLAN_CTAG_FILTER)) {
58 /* Add VLAN to the device filter if it is supported. 58 /* Add VLAN to the device filter if it is supported.
59 * Stricly speaking, this is not necessary now, since 59 * Stricly speaking, this is not necessary now, since
60 * devices are made promiscuous by the bridge, but if 60 * devices are made promiscuous by the bridge, but if
@@ -82,7 +82,7 @@ static int __vlan_add(struct net_port_vlans *v, u16 vid, u16 flags)
82 return 0; 82 return 0;
83 83
84out_filt: 84out_filt:
85 if (p && (dev->features & NETIF_F_HW_VLAN_FILTER)) 85 if (p && (dev->features & NETIF_F_HW_VLAN_CTAG_FILTER))
86 dev->netdev_ops->ndo_vlan_rx_kill_vid(dev, vid); 86 dev->netdev_ops->ndo_vlan_rx_kill_vid(dev, vid);
87 return err; 87 return err;
88} 88}
@@ -98,7 +98,7 @@ static int __vlan_del(struct net_port_vlans *v, u16 vid)
98 if (v->port_idx && vid) { 98 if (v->port_idx && vid) {
99 struct net_device *dev = v->parent.port->dev; 99 struct net_device *dev = v->parent.port->dev;
100 100
101 if (dev->features & NETIF_F_HW_VLAN_FILTER) 101 if (dev->features & NETIF_F_HW_VLAN_CTAG_FILTER)
102 dev->netdev_ops->ndo_vlan_rx_kill_vid(dev, vid); 102 dev->netdev_ops->ndo_vlan_rx_kill_vid(dev, vid);
103 } 103 }
104 104
diff --git a/net/core/dev.c b/net/core/dev.c
index 3655ff927315..07a8e9dc43fc 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2435,13 +2435,13 @@ netdev_features_t netif_skb_features(struct sk_buff *skb)
2435 return harmonize_features(skb, protocol, features); 2435 return harmonize_features(skb, protocol, features);
2436 } 2436 }
2437 2437
2438 features &= (skb->dev->vlan_features | NETIF_F_HW_VLAN_TX); 2438 features &= (skb->dev->vlan_features | NETIF_F_HW_VLAN_CTAG_TX);
2439 2439
2440 if (protocol != htons(ETH_P_8021Q)) { 2440 if (protocol != htons(ETH_P_8021Q)) {
2441 return harmonize_features(skb, protocol, features); 2441 return harmonize_features(skb, protocol, features);
2442 } else { 2442 } else {
2443 features &= NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST | 2443 features &= NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST |
2444 NETIF_F_GEN_CSUM | NETIF_F_HW_VLAN_TX; 2444 NETIF_F_GEN_CSUM | NETIF_F_HW_VLAN_CTAG_TX;
2445 return harmonize_features(skb, protocol, features); 2445 return harmonize_features(skb, protocol, features);
2446 } 2446 }
2447} 2447}
@@ -2482,7 +2482,7 @@ int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev,
2482 features = netif_skb_features(skb); 2482 features = netif_skb_features(skb);
2483 2483
2484 if (vlan_tx_tag_present(skb) && 2484 if (vlan_tx_tag_present(skb) &&
2485 !(features & NETIF_F_HW_VLAN_TX)) { 2485 !(features & NETIF_F_HW_VLAN_CTAG_TX)) {
2486 skb = __vlan_put_tag(skb, vlan_tx_tag_get(skb)); 2486 skb = __vlan_put_tag(skb, vlan_tx_tag_get(skb));
2487 if (unlikely(!skb)) 2487 if (unlikely(!skb))
2488 goto out; 2488 goto out;
@@ -5180,7 +5180,8 @@ int register_netdevice(struct net_device *dev)
5180 } 5180 }
5181 } 5181 }
5182 5182
5183 if (((dev->hw_features | dev->features) & NETIF_F_HW_VLAN_FILTER) && 5183 if (((dev->hw_features | dev->features) &
5184 NETIF_F_HW_VLAN_CTAG_FILTER) &&
5184 (!dev->netdev_ops->ndo_vlan_rx_add_vid || 5185 (!dev->netdev_ops->ndo_vlan_rx_add_vid ||
5185 !dev->netdev_ops->ndo_vlan_rx_kill_vid)) { 5186 !dev->netdev_ops->ndo_vlan_rx_kill_vid)) {
5186 netdev_WARN(dev, "Buggy VLAN acceleration in driver!\n"); 5187 netdev_WARN(dev, "Buggy VLAN acceleration in driver!\n");
diff --git a/net/core/ethtool.c b/net/core/ethtool.c
index adc1351e6873..b87712cfd26c 100644
--- a/net/core/ethtool.c
+++ b/net/core/ethtool.c
@@ -60,10 +60,10 @@ static const char netdev_features_strings[NETDEV_FEATURE_COUNT][ETH_GSTRING_LEN]
60 [NETIF_F_IPV6_CSUM_BIT] = "tx-checksum-ipv6", 60 [NETIF_F_IPV6_CSUM_BIT] = "tx-checksum-ipv6",
61 [NETIF_F_HIGHDMA_BIT] = "highdma", 61 [NETIF_F_HIGHDMA_BIT] = "highdma",
62 [NETIF_F_FRAGLIST_BIT] = "tx-scatter-gather-fraglist", 62 [NETIF_F_FRAGLIST_BIT] = "tx-scatter-gather-fraglist",
63 [NETIF_F_HW_VLAN_TX_BIT] = "tx-vlan-hw-insert", 63 [NETIF_F_HW_VLAN_CTAG_TX_BIT] = "tx-vlan-ctag-hw-insert",
64 64
65 [NETIF_F_HW_VLAN_RX_BIT] = "rx-vlan-hw-parse", 65 [NETIF_F_HW_VLAN_CTAG_RX_BIT] = "rx-vlan-ctag-hw-parse",
66 [NETIF_F_HW_VLAN_FILTER_BIT] = "rx-vlan-filter", 66 [NETIF_F_HW_VLAN_CTAG_FILTER_BIT] = "rx-vlan-ctag-filter",
67 [NETIF_F_VLAN_CHALLENGED_BIT] = "vlan-challenged", 67 [NETIF_F_VLAN_CHALLENGED_BIT] = "vlan-challenged",
68 [NETIF_F_GSO_BIT] = "tx-generic-segmentation", 68 [NETIF_F_GSO_BIT] = "tx-generic-segmentation",
69 [NETIF_F_LLTX_BIT] = "tx-lockless", 69 [NETIF_F_LLTX_BIT] = "tx-lockless",
@@ -267,18 +267,19 @@ static int ethtool_set_one_feature(struct net_device *dev,
267 267
268#define ETH_ALL_FLAGS (ETH_FLAG_LRO | ETH_FLAG_RXVLAN | ETH_FLAG_TXVLAN | \ 268#define ETH_ALL_FLAGS (ETH_FLAG_LRO | ETH_FLAG_RXVLAN | ETH_FLAG_TXVLAN | \
269 ETH_FLAG_NTUPLE | ETH_FLAG_RXHASH) 269 ETH_FLAG_NTUPLE | ETH_FLAG_RXHASH)
270#define ETH_ALL_FEATURES (NETIF_F_LRO | NETIF_F_HW_VLAN_RX | \ 270#define ETH_ALL_FEATURES (NETIF_F_LRO | NETIF_F_HW_VLAN_CTAG_RX | \
271 NETIF_F_HW_VLAN_TX | NETIF_F_NTUPLE | NETIF_F_RXHASH) 271 NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_NTUPLE | \
272 NETIF_F_RXHASH)
272 273
273static u32 __ethtool_get_flags(struct net_device *dev) 274static u32 __ethtool_get_flags(struct net_device *dev)
274{ 275{
275 u32 flags = 0; 276 u32 flags = 0;
276 277
277 if (dev->features & NETIF_F_LRO) flags |= ETH_FLAG_LRO; 278 if (dev->features & NETIF_F_LRO) flags |= ETH_FLAG_LRO;
278 if (dev->features & NETIF_F_HW_VLAN_RX) flags |= ETH_FLAG_RXVLAN; 279 if (dev->features & NETIF_F_HW_VLAN_CTAG_RX) flags |= ETH_FLAG_RXVLAN;
279 if (dev->features & NETIF_F_HW_VLAN_TX) flags |= ETH_FLAG_TXVLAN; 280 if (dev->features & NETIF_F_HW_VLAN_CTAG_TX) flags |= ETH_FLAG_TXVLAN;
280 if (dev->features & NETIF_F_NTUPLE) flags |= ETH_FLAG_NTUPLE; 281 if (dev->features & NETIF_F_NTUPLE) flags |= ETH_FLAG_NTUPLE;
281 if (dev->features & NETIF_F_RXHASH) flags |= ETH_FLAG_RXHASH; 282 if (dev->features & NETIF_F_RXHASH) flags |= ETH_FLAG_RXHASH;
282 283
283 return flags; 284 return flags;
284} 285}
@@ -291,8 +292,8 @@ static int __ethtool_set_flags(struct net_device *dev, u32 data)
291 return -EINVAL; 292 return -EINVAL;
292 293
293 if (data & ETH_FLAG_LRO) features |= NETIF_F_LRO; 294 if (data & ETH_FLAG_LRO) features |= NETIF_F_LRO;
294 if (data & ETH_FLAG_RXVLAN) features |= NETIF_F_HW_VLAN_RX; 295 if (data & ETH_FLAG_RXVLAN) features |= NETIF_F_HW_VLAN_CTAG_RX;
295 if (data & ETH_FLAG_TXVLAN) features |= NETIF_F_HW_VLAN_TX; 296 if (data & ETH_FLAG_TXVLAN) features |= NETIF_F_HW_VLAN_CTAG_TX;
296 if (data & ETH_FLAG_NTUPLE) features |= NETIF_F_NTUPLE; 297 if (data & ETH_FLAG_NTUPLE) features |= NETIF_F_NTUPLE;
297 if (data & ETH_FLAG_RXHASH) features |= NETIF_F_RXHASH; 298 if (data & ETH_FLAG_RXHASH) features |= NETIF_F_RXHASH;
298 299
diff --git a/net/core/netpoll.c b/net/core/netpoll.c
index a3a17aed3639..8de961e67cf7 100644
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
@@ -383,7 +383,7 @@ void netpoll_send_skb_on_dev(struct netpoll *np, struct sk_buff *skb,
383 if (__netif_tx_trylock(txq)) { 383 if (__netif_tx_trylock(txq)) {
384 if (!netif_xmit_stopped(txq)) { 384 if (!netif_xmit_stopped(txq)) {
385 if (vlan_tx_tag_present(skb) && 385 if (vlan_tx_tag_present(skb) &&
386 !(netif_skb_features(skb) & NETIF_F_HW_VLAN_TX)) { 386 !(netif_skb_features(skb) & NETIF_F_HW_VLAN_CTAG_TX)) {
387 skb = __vlan_put_tag(skb, vlan_tx_tag_get(skb)); 387 skb = __vlan_put_tag(skb, vlan_tx_tag_get(skb));
388 if (unlikely(!skb)) 388 if (unlikely(!skb))
389 break; 389 break;
diff --git a/net/openvswitch/vport-internal_dev.c b/net/openvswitch/vport-internal_dev.c
index 9604760494b1..73682de8dc69 100644
--- a/net/openvswitch/vport-internal_dev.c
+++ b/net/openvswitch/vport-internal_dev.c
@@ -137,7 +137,7 @@ static void do_setup(struct net_device *netdev)
137 NETIF_F_HIGHDMA | NETIF_F_HW_CSUM | NETIF_F_TSO; 137 NETIF_F_HIGHDMA | NETIF_F_HW_CSUM | NETIF_F_TSO;
138 138
139 netdev->vlan_features = netdev->features; 139 netdev->vlan_features = netdev->features;
140 netdev->features |= NETIF_F_HW_VLAN_TX; 140 netdev->features |= NETIF_F_HW_VLAN_CTAG_TX;
141 netdev->hw_features = netdev->features & ~NETIF_F_LLTX; 141 netdev->hw_features = netdev->features & ~NETIF_F_LLTX;
142 eth_hw_addr_random(netdev); 142 eth_hw_addr_random(netdev);
143} 143}