|
@@ -4634,6 +4634,15 @@ int be_update_queues(struct be_adapter *adapter)
|
|
|
|
|
|
be_schedule_worker(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))
|
|
if (netif_running(netdev))
|
|
status = be_open(netdev);
|
|
status = be_open(netdev);
|
|
|
|
|