You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
net: vlan: rename NETIF_F_HW_VLAN_* feature flags to NETIF_F_HW_VLAN_CTAG_*
Rename the hardware VLAN acceleration features to include "CTAG" to indicate that they only support CTAGs. Follow up patches will introduce 802.1ad server provider tagging (STAGs) and require the distinction for hardware not supporting acclerating both. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
c2962897c9
commit
f646968f8f
@@ -1599,7 +1599,7 @@ static void nes_vlan_mode(struct net_device *netdev, struct nes_device *nesdev,
|
||||
|
||||
/* Enable/Disable VLAN Stripping */
|
||||
u32temp = nes_read_indexed(nesdev, NES_IDX_PCIX_DIAG);
|
||||
if (features & NETIF_F_HW_VLAN_RX)
|
||||
if (features & NETIF_F_HW_VLAN_CTAG_RX)
|
||||
u32temp &= 0xfdffffff;
|
||||
else
|
||||
u32temp |= 0x02000000;
|
||||
@@ -1614,10 +1614,10 @@ static netdev_features_t nes_fix_features(struct net_device *netdev, netdev_feat
|
||||
* Since there is no support for separate rx/tx vlan accel
|
||||
* enable/disable make sure tx flag is always in same state as rx.
|
||||
*/
|
||||
if (features & NETIF_F_HW_VLAN_RX)
|
||||
features |= NETIF_F_HW_VLAN_TX;
|
||||
if (features & NETIF_F_HW_VLAN_CTAG_RX)
|
||||
features |= NETIF_F_HW_VLAN_CTAG_TX;
|
||||
else
|
||||
features &= ~NETIF_F_HW_VLAN_TX;
|
||||
features &= ~NETIF_F_HW_VLAN_CTAG_TX;
|
||||
|
||||
return features;
|
||||
}
|
||||
@@ -1628,7 +1628,7 @@ static int nes_set_features(struct net_device *netdev, netdev_features_t feature
|
||||
struct nes_device *nesdev = nesvnic->nesdev;
|
||||
u32 changed = netdev->features ^ features;
|
||||
|
||||
if (changed & NETIF_F_HW_VLAN_RX)
|
||||
if (changed & NETIF_F_HW_VLAN_CTAG_RX)
|
||||
nes_vlan_mode(netdev, nesdev, features);
|
||||
|
||||
return 0;
|
||||
@@ -1706,11 +1706,11 @@ struct net_device *nes_netdev_init(struct nes_device *nesdev,
|
||||
netdev->dev_addr[4] = (u8)(u64temp>>8);
|
||||
netdev->dev_addr[5] = (u8)u64temp;
|
||||
|
||||
netdev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_RXCSUM | NETIF_F_HW_VLAN_RX;
|
||||
netdev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_RXCSUM | NETIF_F_HW_VLAN_CTAG_RX;
|
||||
if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV))
|
||||
netdev->hw_features |= NETIF_F_TSO;
|
||||
|
||||
netdev->features = netdev->hw_features | NETIF_F_HIGHDMA | NETIF_F_HW_VLAN_TX;
|
||||
netdev->features = netdev->hw_features | NETIF_F_HIGHDMA | NETIF_F_HW_VLAN_CTAG_TX;
|
||||
netdev->hw_features |= NETIF_F_LRO;
|
||||
|
||||
nes_debug(NES_DBG_INIT, "nesvnic = %p, reported features = 0x%lX, QPid = %d,"
|
||||
|
||||
@@ -4322,9 +4322,9 @@ static void bond_setup(struct net_device *bond_dev)
|
||||
*/
|
||||
|
||||
bond_dev->hw_features = BOND_VLAN_FEATURES |
|
||||
NETIF_F_HW_VLAN_TX |
|
||||
NETIF_F_HW_VLAN_RX |
|
||||
NETIF_F_HW_VLAN_FILTER;
|
||||
NETIF_F_HW_VLAN_CTAG_TX |
|
||||
NETIF_F_HW_VLAN_CTAG_RX |
|
||||
NETIF_F_HW_VLAN_CTAG_FILTER;
|
||||
|
||||
bond_dev->hw_features &= ~(NETIF_F_ALL_CSUM & ~NETIF_F_HW_CSUM);
|
||||
bond_dev->features |= bond_dev->hw_features;
|
||||
|
||||
@@ -2445,9 +2445,9 @@ typhoon_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
* settings -- so we only allow the user to toggle the TX processing.
|
||||
*/
|
||||
dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO |
|
||||
NETIF_F_HW_VLAN_TX;
|
||||
NETIF_F_HW_VLAN_CTAG_TX;
|
||||
dev->features = dev->hw_features |
|
||||
NETIF_F_HW_VLAN_RX | NETIF_F_RXCSUM;
|
||||
NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_RXCSUM;
|
||||
|
||||
if(register_netdev(dev) < 0) {
|
||||
err_msg = "unable to register netdev";
|
||||
|
||||
@@ -702,7 +702,7 @@ static int starfire_init_one(struct pci_dev *pdev,
|
||||
#endif /* ZEROCOPY */
|
||||
|
||||
#ifdef VLAN_SUPPORT
|
||||
dev->features |= NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER;
|
||||
dev->features |= NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_CTAG_FILTER;
|
||||
#endif /* VLAN_RX_KILL_VID */
|
||||
#ifdef ADDR_64BITS
|
||||
dev->features |= NETIF_F_HIGHDMA;
|
||||
|
||||
@@ -472,7 +472,7 @@ static int acenic_probe_one(struct pci_dev *pdev,
|
||||
ap->name = pci_name(pdev);
|
||||
|
||||
dev->features |= NETIF_F_SG | NETIF_F_IP_CSUM;
|
||||
dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
|
||||
dev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX;
|
||||
|
||||
dev->watchdog_timeo = 5*HZ;
|
||||
|
||||
|
||||
@@ -1869,7 +1869,7 @@ static int amd8111e_probe_one(struct pci_dev *pdev,
|
||||
SET_NETDEV_DEV(dev, &pdev->dev);
|
||||
|
||||
#if AMD8111E_VLAN_TAG_USED
|
||||
dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX ;
|
||||
dev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX ;
|
||||
#endif
|
||||
|
||||
lp = netdev_priv(dev);
|
||||
@@ -1907,7 +1907,7 @@ static int amd8111e_probe_one(struct pci_dev *pdev,
|
||||
netif_napi_add(dev, &lp->napi, amd8111e_rx_poll, 32);
|
||||
|
||||
#if AMD8111E_VLAN_TAG_USED
|
||||
dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
|
||||
dev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX;
|
||||
#endif
|
||||
/* Probe the external PHY */
|
||||
amd8111e_probe_ext_phy(dev);
|
||||
|
||||
@@ -417,7 +417,7 @@ static void atl1c_set_multi(struct net_device *netdev)
|
||||
|
||||
static void __atl1c_vlan_mode(netdev_features_t features, u32 *mac_ctrl_data)
|
||||
{
|
||||
if (features & NETIF_F_HW_VLAN_RX) {
|
||||
if (features & NETIF_F_HW_VLAN_CTAG_RX) {
|
||||
/* enable VLAN tag insert/strip */
|
||||
*mac_ctrl_data |= MAC_CTRL_RMV_VLAN;
|
||||
} else {
|
||||
@@ -494,10 +494,10 @@ static netdev_features_t atl1c_fix_features(struct net_device *netdev,
|
||||
* Since there is no support for separate rx/tx vlan accel
|
||||
* enable/disable make sure tx flag is always in same state as rx.
|
||||
*/
|
||||
if (features & NETIF_F_HW_VLAN_RX)
|
||||
features |= NETIF_F_HW_VLAN_TX;
|
||||
if (features & NETIF_F_HW_VLAN_CTAG_RX)
|
||||
features |= NETIF_F_HW_VLAN_CTAG_TX;
|
||||
else
|
||||
features &= ~NETIF_F_HW_VLAN_TX;
|
||||
features &= ~NETIF_F_HW_VLAN_CTAG_TX;
|
||||
|
||||
if (netdev->mtu > MAX_TSO_FRAME_SIZE)
|
||||
features &= ~(NETIF_F_TSO | NETIF_F_TSO6);
|
||||
@@ -510,7 +510,7 @@ static int atl1c_set_features(struct net_device *netdev,
|
||||
{
|
||||
netdev_features_t changed = netdev->features ^ features;
|
||||
|
||||
if (changed & NETIF_F_HW_VLAN_RX)
|
||||
if (changed & NETIF_F_HW_VLAN_CTAG_RX)
|
||||
atl1c_vlan_mode(netdev, features);
|
||||
|
||||
return 0;
|
||||
@@ -2475,13 +2475,13 @@ static int atl1c_init_netdev(struct net_device *netdev, struct pci_dev *pdev)
|
||||
atl1c_set_ethtool_ops(netdev);
|
||||
|
||||
/* TODO: add when ready */
|
||||
netdev->hw_features = NETIF_F_SG |
|
||||
NETIF_F_HW_CSUM |
|
||||
NETIF_F_HW_VLAN_RX |
|
||||
NETIF_F_TSO |
|
||||
netdev->hw_features = NETIF_F_SG |
|
||||
NETIF_F_HW_CSUM |
|
||||
NETIF_F_HW_VLAN_CTAG_RX |
|
||||
NETIF_F_TSO |
|
||||
NETIF_F_TSO6;
|
||||
netdev->features = netdev->hw_features |
|
||||
NETIF_F_HW_VLAN_TX;
|
||||
netdev->features = netdev->hw_features |
|
||||
NETIF_F_HW_VLAN_CTAG_TX;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -315,7 +315,7 @@ static void atl1e_set_multi(struct net_device *netdev)
|
||||
|
||||
static void __atl1e_vlan_mode(netdev_features_t features, u32 *mac_ctrl_data)
|
||||
{
|
||||
if (features & NETIF_F_HW_VLAN_RX) {
|
||||
if (features & NETIF_F_HW_VLAN_CTAG_RX) {
|
||||
/* enable VLAN tag insert/strip */
|
||||
*mac_ctrl_data |= MAC_CTRL_RMV_VLAN;
|
||||
} else {
|
||||
@@ -378,10 +378,10 @@ static netdev_features_t atl1e_fix_features(struct net_device *netdev,
|
||||
* Since there is no support for separate rx/tx vlan accel
|
||||
* enable/disable make sure tx flag is always in same state as rx.
|
||||
*/
|
||||
if (features & NETIF_F_HW_VLAN_RX)
|
||||
features |= NETIF_F_HW_VLAN_TX;
|
||||
if (features & NETIF_F_HW_VLAN_CTAG_RX)
|
||||
features |= NETIF_F_HW_VLAN_CTAG_TX;
|
||||
else
|
||||
features &= ~NETIF_F_HW_VLAN_TX;
|
||||
features &= ~NETIF_F_HW_VLAN_CTAG_TX;
|
||||
|
||||
return features;
|
||||
}
|
||||
@@ -391,7 +391,7 @@ static int atl1e_set_features(struct net_device *netdev,
|
||||
{
|
||||
netdev_features_t changed = netdev->features ^ features;
|
||||
|
||||
if (changed & NETIF_F_HW_VLAN_RX)
|
||||
if (changed & NETIF_F_HW_VLAN_CTAG_RX)
|
||||
atl1e_vlan_mode(netdev, features);
|
||||
|
||||
return 0;
|
||||
@@ -2198,9 +2198,9 @@ static int atl1e_init_netdev(struct net_device *netdev, struct pci_dev *pdev)
|
||||
atl1e_set_ethtool_ops(netdev);
|
||||
|
||||
netdev->hw_features = NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_TSO |
|
||||
NETIF_F_HW_VLAN_RX;
|
||||
NETIF_F_HW_VLAN_CTAG_RX;
|
||||
netdev->features = netdev->hw_features | NETIF_F_LLTX |
|
||||
NETIF_F_HW_VLAN_TX;
|
||||
NETIF_F_HW_VLAN_CTAG_TX;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -3018,10 +3018,10 @@ static int atl1_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
|
||||
netdev->features = NETIF_F_HW_CSUM;
|
||||
netdev->features |= NETIF_F_SG;
|
||||
netdev->features |= (NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX);
|
||||
netdev->features |= (NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX);
|
||||
|
||||
netdev->hw_features = NETIF_F_HW_CSUM | NETIF_F_SG | NETIF_F_TSO |
|
||||
NETIF_F_HW_VLAN_RX;
|
||||
NETIF_F_HW_VLAN_CTAG_RX;
|
||||
|
||||
/* is this valid? see atl1_setup_mac_ctrl() */
|
||||
netdev->features |= NETIF_F_RXCSUM;
|
||||
|
||||
@@ -363,7 +363,7 @@ static inline void atl2_irq_disable(struct atl2_adapter *adapter)
|
||||
|
||||
static void __atl2_vlan_mode(netdev_features_t features, u32 *ctrl)
|
||||
{
|
||||
if (features & NETIF_F_HW_VLAN_RX) {
|
||||
if (features & NETIF_F_HW_VLAN_CTAG_RX) {
|
||||
/* enable VLAN tag insert/strip */
|
||||
*ctrl |= MAC_CTRL_RMV_VLAN;
|
||||
} else {
|
||||
@@ -399,10 +399,10 @@ static netdev_features_t atl2_fix_features(struct net_device *netdev,
|
||||
* Since there is no support for separate rx/tx vlan accel
|
||||
* enable/disable make sure tx flag is always in same state as rx.
|
||||
*/
|
||||
if (features & NETIF_F_HW_VLAN_RX)
|
||||
features |= NETIF_F_HW_VLAN_TX;
|
||||
if (features & NETIF_F_HW_VLAN_CTAG_RX)
|
||||
features |= NETIF_F_HW_VLAN_CTAG_TX;
|
||||
else
|
||||
features &= ~NETIF_F_HW_VLAN_TX;
|
||||
features &= ~NETIF_F_HW_VLAN_CTAG_TX;
|
||||
|
||||
return features;
|
||||
}
|
||||
@@ -412,7 +412,7 @@ static int atl2_set_features(struct net_device *netdev,
|
||||
{
|
||||
netdev_features_t changed = netdev->features ^ features;
|
||||
|
||||
if (changed & NETIF_F_HW_VLAN_RX)
|
||||
if (changed & NETIF_F_HW_VLAN_CTAG_RX)
|
||||
atl2_vlan_mode(netdev, features);
|
||||
|
||||
return 0;
|
||||
@@ -887,7 +887,7 @@ static netdev_tx_t atl2_xmit_frame(struct sk_buff *skb,
|
||||
skb->len-copy_len);
|
||||
offset = ((u32)(skb->len-copy_len + 3) & ~3);
|
||||
}
|
||||
#ifdef NETIF_F_HW_VLAN_TX
|
||||
#ifdef NETIF_F_HW_VLAN_CTAG_TX
|
||||
if (vlan_tx_tag_present(skb)) {
|
||||
u16 vlan_tag = vlan_tx_tag_get(skb);
|
||||
vlan_tag = (vlan_tag << 4) |
|
||||
@@ -1413,8 +1413,8 @@ static int atl2_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
|
||||
err = -EIO;
|
||||
|
||||
netdev->hw_features = NETIF_F_SG | NETIF_F_HW_VLAN_RX;
|
||||
netdev->features |= (NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX);
|
||||
netdev->hw_features = NETIF_F_SG | NETIF_F_HW_VLAN_CTAG_RX;
|
||||
netdev->features |= (NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX);
|
||||
|
||||
/* Init PHY as early as possible due to power saving issue */
|
||||
atl2_phy_init(&adapter->hw);
|
||||
|
||||
@@ -220,7 +220,7 @@ static void atlx_link_chg_task(struct work_struct *work)
|
||||
|
||||
static void __atlx_vlan_mode(netdev_features_t features, u32 *ctrl)
|
||||
{
|
||||
if (features & NETIF_F_HW_VLAN_RX) {
|
||||
if (features & NETIF_F_HW_VLAN_CTAG_RX) {
|
||||
/* enable VLAN tag insert/strip */
|
||||
*ctrl |= MAC_CTRL_RMV_VLAN;
|
||||
} else {
|
||||
@@ -257,10 +257,10 @@ static netdev_features_t atlx_fix_features(struct net_device *netdev,
|
||||
* Since there is no support for separate rx/tx vlan accel
|
||||
* enable/disable make sure tx flag is always in same state as rx.
|
||||
*/
|
||||
if (features & NETIF_F_HW_VLAN_RX)
|
||||
features |= NETIF_F_HW_VLAN_TX;
|
||||
if (features & NETIF_F_HW_VLAN_CTAG_RX)
|
||||
features |= NETIF_F_HW_VLAN_CTAG_TX;
|
||||
else
|
||||
features &= ~NETIF_F_HW_VLAN_TX;
|
||||
features &= ~NETIF_F_HW_VLAN_CTAG_TX;
|
||||
|
||||
return features;
|
||||
}
|
||||
@@ -270,7 +270,7 @@ static int atlx_set_features(struct net_device *netdev,
|
||||
{
|
||||
netdev_features_t changed = netdev->features ^ features;
|
||||
|
||||
if (changed & NETIF_F_HW_VLAN_RX)
|
||||
if (changed & NETIF_F_HW_VLAN_CTAG_RX)
|
||||
atlx_vlan_mode(netdev, features);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -3553,7 +3553,7 @@ bnx2_set_rx_mode(struct net_device *dev)
|
||||
rx_mode = bp->rx_mode & ~(BNX2_EMAC_RX_MODE_PROMISCUOUS |
|
||||
BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG);
|
||||
sort_mode = 1 | BNX2_RPM_SORT_USER0_BC_EN;
|
||||
if (!(dev->features & NETIF_F_HW_VLAN_RX) &&
|
||||
if (!(dev->features & NETIF_F_HW_VLAN_CTAG_RX) &&
|
||||
(bp->flags & BNX2_FLAG_CAN_KEEP_VLAN))
|
||||
rx_mode |= BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG;
|
||||
if (dev->flags & IFF_PROMISC) {
|
||||
@@ -7695,7 +7695,7 @@ bnx2_fix_features(struct net_device *dev, netdev_features_t features)
|
||||
struct bnx2 *bp = netdev_priv(dev);
|
||||
|
||||
if (!(bp->flags & BNX2_FLAG_CAN_KEEP_VLAN))
|
||||
features |= NETIF_F_HW_VLAN_RX;
|
||||
features |= NETIF_F_HW_VLAN_CTAG_RX;
|
||||
|
||||
return features;
|
||||
}
|
||||
@@ -7706,12 +7706,12 @@ bnx2_set_features(struct net_device *dev, netdev_features_t features)
|
||||
struct bnx2 *bp = netdev_priv(dev);
|
||||
|
||||
/* TSO with VLAN tag won't work with current firmware */
|
||||
if (features & NETIF_F_HW_VLAN_TX)
|
||||
if (features & NETIF_F_HW_VLAN_CTAG_TX)
|
||||
dev->vlan_features |= (dev->hw_features & NETIF_F_ALL_TSO);
|
||||
else
|
||||
dev->vlan_features &= ~NETIF_F_ALL_TSO;
|
||||
|
||||
if ((!!(features & NETIF_F_HW_VLAN_RX) !=
|
||||
if ((!!(features & NETIF_F_HW_VLAN_CTAG_RX) !=
|
||||
!!(bp->rx_mode & BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG)) &&
|
||||
netif_running(dev)) {
|
||||
bnx2_netif_stop(bp, false);
|
||||
@@ -8551,7 +8551,7 @@ bnx2_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
dev->hw_features |= NETIF_F_IPV6_CSUM | NETIF_F_TSO6;
|
||||
|
||||
dev->vlan_features = dev->hw_features;
|
||||
dev->hw_features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
|
||||
dev->hw_features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX;
|
||||
dev->features |= dev->hw_features;
|
||||
dev->priv_flags |= IFF_UNICAST_FLT;
|
||||
|
||||
|
||||
@@ -12027,7 +12027,7 @@ static int bnx2x_init_dev(struct bnx2x *bp, struct pci_dev *pdev,
|
||||
dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
|
||||
NETIF_F_TSO | NETIF_F_TSO_ECN | NETIF_F_TSO6 |
|
||||
NETIF_F_RXCSUM | NETIF_F_LRO | NETIF_F_GRO |
|
||||
NETIF_F_RXHASH | NETIF_F_HW_VLAN_TX;
|
||||
NETIF_F_RXHASH | NETIF_F_HW_VLAN_CTAG_TX;
|
||||
if (!CHIP_IS_E1x(bp)) {
|
||||
dev->hw_features |= NETIF_F_GSO_GRE;
|
||||
dev->hw_enc_features =
|
||||
@@ -12039,7 +12039,7 @@ static int bnx2x_init_dev(struct bnx2x *bp, struct pci_dev *pdev,
|
||||
dev->vlan_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
|
||||
NETIF_F_TSO | NETIF_F_TSO_ECN | NETIF_F_TSO6 | NETIF_F_HIGHDMA;
|
||||
|
||||
dev->features |= dev->hw_features | NETIF_F_HW_VLAN_RX;
|
||||
dev->features |= dev->hw_features | NETIF_F_HW_VLAN_CTAG_RX;
|
||||
if (bp->flags & USING_DAC_FLAG)
|
||||
dev->features |= NETIF_F_HIGHDMA;
|
||||
|
||||
|
||||
@@ -17197,7 +17197,7 @@ static int tg3_init_one(struct pci_dev *pdev,
|
||||
|
||||
tg3_init_bufmgr_config(tp);
|
||||
|
||||
features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
|
||||
features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX;
|
||||
|
||||
/* 5700 B0 chips do not support checksumming correctly due
|
||||
* to hardware bugs.
|
||||
|
||||
@@ -3170,14 +3170,14 @@ bnad_netdev_init(struct bnad *bnad, bool using_dac)
|
||||
|
||||
netdev->hw_features = NETIF_F_SG | NETIF_F_RXCSUM |
|
||||
NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
|
||||
NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_HW_VLAN_TX;
|
||||
NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_HW_VLAN_CTAG_TX;
|
||||
|
||||
netdev->vlan_features = NETIF_F_SG | NETIF_F_HIGHDMA |
|
||||
NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
|
||||
NETIF_F_TSO | NETIF_F_TSO6;
|
||||
|
||||
netdev->features |= netdev->hw_features |
|
||||
NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER;
|
||||
NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_CTAG_FILTER;
|
||||
|
||||
if (using_dac)
|
||||
netdev->features |= NETIF_F_HIGHDMA;
|
||||
|
||||
@@ -856,10 +856,10 @@ static netdev_features_t t1_fix_features(struct net_device *dev,
|
||||
* Since there is no support for separate rx/tx vlan accel
|
||||
* enable/disable make sure tx flag is always in same state as rx.
|
||||
*/
|
||||
if (features & NETIF_F_HW_VLAN_RX)
|
||||
features |= NETIF_F_HW_VLAN_TX;
|
||||
if (features & NETIF_F_HW_VLAN_CTAG_RX)
|
||||
features |= NETIF_F_HW_VLAN_CTAG_TX;
|
||||
else
|
||||
features &= ~NETIF_F_HW_VLAN_TX;
|
||||
features &= ~NETIF_F_HW_VLAN_CTAG_TX;
|
||||
|
||||
return features;
|
||||
}
|
||||
@@ -869,7 +869,7 @@ static int t1_set_features(struct net_device *dev, netdev_features_t features)
|
||||
netdev_features_t changed = dev->features ^ features;
|
||||
struct adapter *adapter = dev->ml_priv;
|
||||
|
||||
if (changed & NETIF_F_HW_VLAN_RX)
|
||||
if (changed & NETIF_F_HW_VLAN_CTAG_RX)
|
||||
t1_vlan_mode(adapter, features);
|
||||
|
||||
return 0;
|
||||
@@ -1085,8 +1085,9 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
netdev->features |= NETIF_F_HIGHDMA;
|
||||
if (vlan_tso_capable(adapter)) {
|
||||
netdev->features |=
|
||||
NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
|
||||
netdev->hw_features |= NETIF_F_HW_VLAN_RX;
|
||||
NETIF_F_HW_VLAN_CTAG_TX |
|
||||
NETIF_F_HW_VLAN_CTAG_RX;
|
||||
netdev->hw_features |= NETIF_F_HW_VLAN_CTAG_RX;
|
||||
|
||||
/* T204: disable TSO */
|
||||
if (!(is_T2(adapter)) || bi->port_number != 4) {
|
||||
|
||||
@@ -734,7 +734,7 @@ void t1_vlan_mode(struct adapter *adapter, netdev_features_t features)
|
||||
{
|
||||
struct sge *sge = adapter->sge;
|
||||
|
||||
if (features & NETIF_F_HW_VLAN_RX)
|
||||
if (features & NETIF_F_HW_VLAN_CTAG_RX)
|
||||
sge->sge_control |= F_VLAN_XTRACT;
|
||||
else
|
||||
sge->sge_control &= ~F_VLAN_XTRACT;
|
||||
|
||||
@@ -1181,14 +1181,15 @@ static void cxgb_vlan_mode(struct net_device *dev, netdev_features_t features)
|
||||
|
||||
if (adapter->params.rev > 0) {
|
||||
t3_set_vlan_accel(adapter, 1 << pi->port_id,
|
||||
features & NETIF_F_HW_VLAN_RX);
|
||||
features & NETIF_F_HW_VLAN_CTAG_RX);
|
||||
} else {
|
||||
/* single control for all ports */
|
||||
unsigned int i, have_vlans = features & NETIF_F_HW_VLAN_RX;
|
||||
unsigned int i, have_vlans = features & NETIF_F_HW_VLAN_CTAG_RX;
|
||||
|
||||
for_each_port(adapter, i)
|
||||
have_vlans |=
|
||||
adapter->port[i]->features & NETIF_F_HW_VLAN_RX;
|
||||
adapter->port[i]->features &
|
||||
NETIF_F_HW_VLAN_CTAG_RX;
|
||||
|
||||
t3_set_vlan_accel(adapter, 1, have_vlans);
|
||||
}
|
||||
@@ -2563,10 +2564,10 @@ static netdev_features_t cxgb_fix_features(struct net_device *dev,
|
||||
* Since there is no support for separate rx/tx vlan accel
|
||||
* enable/disable make sure tx flag is always in same state as rx.
|
||||
*/
|
||||
if (features & NETIF_F_HW_VLAN_RX)
|
||||
features |= NETIF_F_HW_VLAN_TX;
|
||||
if (features & NETIF_F_HW_VLAN_CTAG_RX)
|
||||
features |= NETIF_F_HW_VLAN_CTAG_TX;
|
||||
else
|
||||
features &= ~NETIF_F_HW_VLAN_TX;
|
||||
features &= ~NETIF_F_HW_VLAN_CTAG_TX;
|
||||
|
||||
return features;
|
||||
}
|
||||
@@ -2575,7 +2576,7 @@ static int cxgb_set_features(struct net_device *dev, netdev_features_t features)
|
||||
{
|
||||
netdev_features_t changed = dev->features ^ features;
|
||||
|
||||
if (changed & NETIF_F_HW_VLAN_RX)
|
||||
if (changed & NETIF_F_HW_VLAN_CTAG_RX)
|
||||
cxgb_vlan_mode(dev, features);
|
||||
|
||||
return 0;
|
||||
@@ -3288,8 +3289,9 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
netdev->mem_start = mmio_start;
|
||||
netdev->mem_end = mmio_start + mmio_len - 1;
|
||||
netdev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM |
|
||||
NETIF_F_TSO | NETIF_F_RXCSUM | NETIF_F_HW_VLAN_RX;
|
||||
netdev->features |= netdev->hw_features | NETIF_F_HW_VLAN_TX;
|
||||
NETIF_F_TSO | NETIF_F_RXCSUM | NETIF_F_HW_VLAN_CTAG_RX;
|
||||
netdev->features |= netdev->hw_features |
|
||||
NETIF_F_HW_VLAN_CTAG_TX;
|
||||
netdev->vlan_features |= netdev->features & VLAN_FEAT;
|
||||
if (pci_using_dac)
|
||||
netdev->features |= NETIF_F_HIGHDMA;
|
||||
|
||||
@@ -559,7 +559,7 @@ static int link_start(struct net_device *dev)
|
||||
* that step explicitly.
|
||||
*/
|
||||
ret = t4_set_rxmode(pi->adapter, mb, pi->viid, dev->mtu, -1, -1, -1,
|
||||
!!(dev->features & NETIF_F_HW_VLAN_RX), true);
|
||||
!!(dev->features & NETIF_F_HW_VLAN_CTAG_RX), true);
|
||||
if (ret == 0) {
|
||||
ret = t4_change_mac(pi->adapter, mb, pi->viid,
|
||||
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)
|
||||
netdev_features_t changed = dev->features ^ features;
|
||||
int err;
|
||||
|
||||
if (!(changed & NETIF_F_HW_VLAN_RX))
|
||||
if (!(changed & NETIF_F_HW_VLAN_CTAG_RX))
|
||||
return 0;
|
||||
|
||||
err = t4_set_rxmode(pi->adapter, pi->adapter->fn, pi->viid, -1,
|
||||
-1, -1, -1,
|
||||
!!(features & NETIF_F_HW_VLAN_RX), true);
|
||||
!!(features & NETIF_F_HW_VLAN_CTAG_RX), true);
|
||||
if (unlikely(err))
|
||||
dev->features = features ^ NETIF_F_HW_VLAN_RX;
|
||||
dev->features = features ^ NETIF_F_HW_VLAN_CTAG_RX;
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -5628,7 +5628,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
netdev->hw_features = NETIF_F_SG | TSO_FLAGS |
|
||||
NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
|
||||
NETIF_F_RXCSUM | NETIF_F_RXHASH |
|
||||
NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
|
||||
NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX;
|
||||
if (highdma)
|
||||
netdev->hw_features |= NETIF_F_HIGHDMA;
|
||||
netdev->features |= netdev->hw_features;
|
||||
|
||||
@@ -1100,10 +1100,10 @@ static netdev_features_t cxgb4vf_fix_features(struct net_device *dev,
|
||||
* Since there is no support for separate rx/tx vlan accel
|
||||
* enable/disable make sure tx flag is always in same state as rx.
|
||||
*/
|
||||
if (features & NETIF_F_HW_VLAN_RX)
|
||||
features |= NETIF_F_HW_VLAN_TX;
|
||||
if (features & NETIF_F_HW_VLAN_CTAG_RX)
|
||||
features |= NETIF_F_HW_VLAN_CTAG_TX;
|
||||
else
|
||||
features &= ~NETIF_F_HW_VLAN_TX;
|
||||
features &= ~NETIF_F_HW_VLAN_CTAG_TX;
|
||||
|
||||
return features;
|
||||
}
|
||||
@@ -1114,9 +1114,9 @@ static int cxgb4vf_set_features(struct net_device *dev,
|
||||
struct port_info *pi = netdev_priv(dev);
|
||||
netdev_features_t changed = dev->features ^ features;
|
||||
|
||||
if (changed & NETIF_F_HW_VLAN_RX)
|
||||
if (changed & NETIF_F_HW_VLAN_CTAG_RX)
|
||||
t4vf_set_rxmode(pi->adapter, pi->viid, -1, -1, -1, -1,
|
||||
features & NETIF_F_HW_VLAN_TX, 0);
|
||||
features & NETIF_F_HW_VLAN_CTAG_TX, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -2623,11 +2623,12 @@ static int cxgb4vf_pci_probe(struct pci_dev *pdev,
|
||||
|
||||
netdev->hw_features = NETIF_F_SG | TSO_FLAGS |
|
||||
NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
|
||||
NETIF_F_HW_VLAN_RX | NETIF_F_RXCSUM;
|
||||
NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_RXCSUM;
|
||||
netdev->vlan_features = NETIF_F_SG | TSO_FLAGS |
|
||||
NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
|
||||
NETIF_F_HIGHDMA;
|
||||
netdev->features = netdev->hw_features | NETIF_F_HW_VLAN_TX;
|
||||
netdev->features = netdev->hw_features |
|
||||
NETIF_F_HW_VLAN_CTAG_TX;
|
||||
if (pci_using_dac)
|
||||
netdev->features |= NETIF_F_HIGHDMA;
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user