Commit d11a347d authored by Ajit Khaparde's avatar Ajit Khaparde Committed by David S. Miller

be2net: Delete secondary unicast MAC addresses during be_close

Secondary unicast MAC addresses will get deleted only when the interface is UP.
When the interface is DOWN, though these secondary MAC addresses are unusable
and awaiting to be deleted, cause the firmware to believe that they are being used.
If the user intends to set a MAC address as primary MAC from one of these
secondary MAC addresses, the firmware returns a MAC address Collision error.
Delete these secondary MAC addresses during be_close.

The secondary MAC addresses list will be refreshed during interface open anyway.
Signed-off-by: default avatarAjit Khaparde <ajit.khaparde@emulex.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 012bd387
...@@ -2672,6 +2672,11 @@ static int be_close(struct net_device *netdev) ...@@ -2672,6 +2672,11 @@ static int be_close(struct net_device *netdev)
be_rx_qs_destroy(adapter); be_rx_qs_destroy(adapter);
for (i = 1; i < (adapter->uc_macs + 1); i++)
be_cmd_pmac_del(adapter, adapter->if_handle,
adapter->pmac_id[i], 0);
adapter->uc_macs = 0;
for_all_evt_queues(adapter, eqo, i) { for_all_evt_queues(adapter, eqo, i) {
if (msix_enabled(adapter)) if (msix_enabled(adapter))
synchronize_irq(be_msix_vec_get(adapter, eqo)); synchronize_irq(be_msix_vec_get(adapter, eqo));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment