Commit eb7cfd8c authored by Andrew Rybchenko's avatar Andrew Rybchenko Committed by David S. Miller

sfc: Disable VLAN filtering by default if not strictly required

If should be done after net_dev->hw_features initialization, to keep the
feature there to be able to enable it later using ethtool.

VLAN filtering is enforced and fixed if vPort requires usage of VLAN
filters to receive tagged traffic.
Signed-off-by: default avatarEdward Cree <ecree@solarflare.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e4478ad1
...@@ -3202,8 +3202,16 @@ static int efx_pci_probe(struct pci_dev *pci_dev, ...@@ -3202,8 +3202,16 @@ static int efx_pci_probe(struct pci_dev *pci_dev,
net_dev->vlan_features |= (NETIF_F_HW_CSUM | NETIF_F_SG | net_dev->vlan_features |= (NETIF_F_HW_CSUM | NETIF_F_SG |
NETIF_F_HIGHDMA | NETIF_F_ALL_TSO | NETIF_F_HIGHDMA | NETIF_F_ALL_TSO |
NETIF_F_RXCSUM); NETIF_F_RXCSUM);
net_dev->features |= efx->fixed_features;
net_dev->hw_features = net_dev->features & ~efx->fixed_features; net_dev->hw_features = net_dev->features & ~efx->fixed_features;
/* Disable VLAN filtering by default. It may be enforced if
* the feature is fixed (i.e. VLAN filters are required to
* receive VLAN tagged packets due to vPort restrictions).
*/
net_dev->features &= ~NETIF_F_HW_VLAN_CTAG_FILTER;
net_dev->features |= efx->fixed_features;
pci_set_drvdata(pci_dev, efx); pci_set_drvdata(pci_dev, efx);
SET_NETDEV_DEV(net_dev, &pci_dev->dev); SET_NETDEV_DEV(net_dev, &pci_dev->dev);
rc = efx_init_struct(efx, pci_dev, net_dev); rc = efx_init_struct(efx, pci_dev, net_dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment