ixgbe: Correctly disable VLAN filter in promiscuous mode
IXGBE adapter seems to require that VLAN filtering be enabled if VMDQ or SRIOV are enabled. When those functions are disabled, VLAN filtering may be disabled in promiscuous mode. Prior to commita9b8943ee1
("ixgbe: remove vlan_filter_disable and enable functions") The logic was correct. However, after the commit the logic got reversed and VLAN filtered in now turned on when VMDQ/SRIOV is disabled. This patch changes the condition to enable hw vlan filtered when VMDQ or SRIOV is enabled. Fixes:a9b8943ee1
("ixgbe: remove vlan_filter_disable and enable functions") Cc: stable <stable@vger.kernel.org> CC: Jacob Keller <jacob.e.keller@intel.com> Signed-off-by: Vladislav Yasevich <vyasevic@redhat.com> Acked-by: Emil Tantilov <emil.s.tantilov@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@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
b6fef4c6b8
commit
4556dc5916
|
@ -3936,8 +3936,8 @@ void ixgbe_set_rx_mode(struct net_device *netdev)
|
|||
* if SR-IOV and VMDQ are disabled - otherwise ensure
|
||||
* that hardware VLAN filters remain enabled.
|
||||
*/
|
||||
if (!(adapter->flags & (IXGBE_FLAG_VMDQ_ENABLED |
|
||||
IXGBE_FLAG_SRIOV_ENABLED)))
|
||||
if (adapter->flags & (IXGBE_FLAG_VMDQ_ENABLED |
|
||||
IXGBE_FLAG_SRIOV_ENABLED))
|
||||
vlnctrl |= (IXGBE_VLNCTRL_VFE | IXGBE_VLNCTRL_CFIEN);
|
||||
} else {
|
||||
if (netdev->flags & IFF_ALLMULTI) {
|
||||
|
|
Loading…
Reference in New Issue