Skip to content

Commit 52acf06

Browse files
iveceradavem330
authored andcommitted
be2net: restore properly promisc mode after queues reconfiguration
The commit 6221906 ("be2net: Request RSS capability of Rx interface depending on number of Rx rings") modified be_update_queues() so the IFACE (HW representation of the netdevice) is destroyed and then re-created. This causes a regression because potential promiscuous mode is not restored properly during be_open() because the driver thinks that the HW has promiscuous mode already enabled. Note that Lancer is not affected by this bug because RX-filter flags are disabled during be_close() for this chipset. Cc: Sathya Perla <sathya.perla@broadcom.com> Cc: Ajit Khaparde <ajit.khaparde@broadcom.com> Cc: Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com> Cc: Somnath Kotur <somnath.kotur@broadcom.com> Fixes: 6221906 ("be2net: Request RSS capability of Rx interface depending on number of Rx rings") Signed-off-by: Ivan Vecera <ivecera@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent ad23b75 commit 52acf06

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

drivers/net/ethernet/emulex/benet/be_main.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4634,6 +4634,15 @@ int be_update_queues(struct be_adapter *adapter)
46344634

46354635
be_schedule_worker(adapter);
46364636

4637+
/*
4638+
* The IF was destroyed and re-created. We need to clear
4639+
* all promiscuous flags valid for the destroyed IF.
4640+
* Without this promisc mode is not restored during
4641+
* be_open() because the driver thinks that it is
4642+
* already enabled in HW.
4643+
*/
4644+
adapter->if_flags &= ~BE_IF_FLAGS_ALL_PROMISCUOUS;
4645+
46374646
if (netif_running(netdev))
46384647
status = be_open(netdev);
46394648

0 commit comments

Comments
 (0)