ixgbe: Only set/clear VFE in ixgbe_set_rx_mode
There appears to be a stray setting of the VFE bit when registering vlans. This should not be done as vlan filtering should be enabled any time the interface is not in promiscous mode Signed-off-by: Mallikarjuna R Chilakala <mallikarjuna.chilakala@intel.com> Acked-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
edd2ea5559
commit
dc63d3771c
1 changed files with 10 additions and 8 deletions
|
@ -2336,23 +2336,25 @@ static void ixgbe_vlan_rx_register(struct net_device *netdev,
|
||||||
* not in DCB mode.
|
* not in DCB mode.
|
||||||
*/
|
*/
|
||||||
ctrl = IXGBE_READ_REG(&adapter->hw, IXGBE_VLNCTRL);
|
ctrl = IXGBE_READ_REG(&adapter->hw, IXGBE_VLNCTRL);
|
||||||
|
|
||||||
|
/* Disable CFI check */
|
||||||
|
ctrl &= ~IXGBE_VLNCTRL_CFIEN;
|
||||||
|
|
||||||
|
/* enable VLAN tag stripping */
|
||||||
if (adapter->hw.mac.type == ixgbe_mac_82598EB) {
|
if (adapter->hw.mac.type == ixgbe_mac_82598EB) {
|
||||||
ctrl |= IXGBE_VLNCTRL_VME | IXGBE_VLNCTRL_VFE;
|
ctrl |= IXGBE_VLNCTRL_VME;
|
||||||
ctrl &= ~IXGBE_VLNCTRL_CFIEN;
|
|
||||||
IXGBE_WRITE_REG(&adapter->hw, IXGBE_VLNCTRL, ctrl);
|
|
||||||
} else if (adapter->hw.mac.type == ixgbe_mac_82599EB) {
|
} else if (adapter->hw.mac.type == ixgbe_mac_82599EB) {
|
||||||
ctrl |= IXGBE_VLNCTRL_VFE;
|
|
||||||
/* enable VLAN tag insert/strip */
|
|
||||||
ctrl = IXGBE_READ_REG(&adapter->hw, IXGBE_VLNCTRL);
|
|
||||||
ctrl &= ~IXGBE_VLNCTRL_CFIEN;
|
|
||||||
IXGBE_WRITE_REG(&adapter->hw, IXGBE_VLNCTRL, ctrl);
|
|
||||||
for (i = 0; i < adapter->num_rx_queues; i++) {
|
for (i = 0; i < adapter->num_rx_queues; i++) {
|
||||||
|
u32 ctrl;
|
||||||
j = adapter->rx_ring[i].reg_idx;
|
j = adapter->rx_ring[i].reg_idx;
|
||||||
ctrl = IXGBE_READ_REG(&adapter->hw, IXGBE_RXDCTL(j));
|
ctrl = IXGBE_READ_REG(&adapter->hw, IXGBE_RXDCTL(j));
|
||||||
ctrl |= IXGBE_RXDCTL_VME;
|
ctrl |= IXGBE_RXDCTL_VME;
|
||||||
IXGBE_WRITE_REG(&adapter->hw, IXGBE_RXDCTL(j), ctrl);
|
IXGBE_WRITE_REG(&adapter->hw, IXGBE_RXDCTL(j), ctrl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IXGBE_WRITE_REG(&adapter->hw, IXGBE_VLNCTRL, ctrl);
|
||||||
|
|
||||||
ixgbe_vlan_rx_add_vid(netdev, 0);
|
ixgbe_vlan_rx_add_vid(netdev, 0);
|
||||||
|
|
||||||
if (!test_bit(__IXGBE_DOWN, &adapter->state))
|
if (!test_bit(__IXGBE_DOWN, &adapter->state))
|
||||||
|
|
Loading…
Reference in a new issue