mirror of https://gitee.com/openkylin/linux.git
be2net: restore properly promisc mode after queues reconfiguration
The commit6221906694
("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:6221906694
("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>
This commit is contained in:
parent
ad23b75093
commit
52acf06451
|
@ -4634,6 +4634,15 @@ int be_update_queues(struct be_adapter *adapter)
|
|||
|
||||
be_schedule_worker(adapter);
|
||||
|
||||
/*
|
||||
* The IF was destroyed and re-created. We need to clear
|
||||
* all promiscuous flags valid for the destroyed IF.
|
||||
* Without this promisc mode is not restored during
|
||||
* be_open() because the driver thinks that it is
|
||||
* already enabled in HW.
|
||||
*/
|
||||
adapter->if_flags &= ~BE_IF_FLAGS_ALL_PROMISCUOUS;
|
||||
|
||||
if (netif_running(netdev))
|
||||
status = be_open(netdev);
|
||||
|
||||
|
|
Loading…
Reference in New Issue