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 <[email protected]> Cc: Ajit Khaparde <[email protected]> Cc: Sriharsha Basavapatna <[email protected]> Cc: Somnath Kotur <[email protected]> Fixes: 6221906 ("be2net: Request RSS capability of Rx interface depending on number of Rx rings") Signed-off-by: Ivan Vecera <[email protected]> Signed-off-by: David S. Miller <[email protected]>
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)