ixgbe: fix bcast packets Rx on VF after promisc removal
commit 803e9895ea2b0fe80bc85980ae2d7a7e44037914 upstream.
After a VF requested to remove the promiscuous flag on an interface, the
broadcast packets are not received anymore. This breaks some protocols
like ARP.
In ixgbe_update_vf_xcast_mode(), we should keep the IXGBE_VMOLR_BAM
bit (Broadcast Accept) on promiscuous removal.
This flag is already set by default in ixgbe_set_vmolr() on VF reset.
Fixes: 8443c1a4b1
("ixgbe, ixgbevf: Add new mbox API xcast mode")
Cc: stable@vger.kernel.org
Cc: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Tested-by: Konrad Jankowski <konrad0.jankowski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
cdd9227373
commit
91620cded9
@@ -1157,9 +1157,9 @@ static int ixgbe_update_vf_xcast_mode(struct ixgbe_adapter *adapter,
|
|||||||
|
|
||||||
switch (xcast_mode) {
|
switch (xcast_mode) {
|
||||||
case IXGBEVF_XCAST_MODE_NONE:
|
case IXGBEVF_XCAST_MODE_NONE:
|
||||||
disable = IXGBE_VMOLR_BAM | IXGBE_VMOLR_ROMPE |
|
disable = IXGBE_VMOLR_ROMPE |
|
||||||
IXGBE_VMOLR_MPE | IXGBE_VMOLR_UPE | IXGBE_VMOLR_VPE;
|
IXGBE_VMOLR_MPE | IXGBE_VMOLR_UPE | IXGBE_VMOLR_VPE;
|
||||||
enable = 0;
|
enable = IXGBE_VMOLR_BAM;
|
||||||
break;
|
break;
|
||||||
case IXGBEVF_XCAST_MODE_MULTI:
|
case IXGBEVF_XCAST_MODE_MULTI:
|
||||||
disable = IXGBE_VMOLR_MPE | IXGBE_VMOLR_UPE | IXGBE_VMOLR_VPE;
|
disable = IXGBE_VMOLR_MPE | IXGBE_VMOLR_UPE | IXGBE_VMOLR_VPE;
|
||||||
|
Reference in New Issue
Block a user