aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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}