be2net: delete primary MAC address while unloading
authorSathya Perla <sathya.perla@emulex.com>
Tue, 23 Jul 2013 09:55:04 +0000 (15:25 +0530)
committerDavid S. Miller <davem@davemloft.net>
Wed, 24 Jul 2013 22:41:53 +0000 (15:41 -0700)
Currently the UC-list is being deleted from the HW MAC table, but the primary
MAC is not.

Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/emulex/benet/be_main.c

index eec751d42d90599ff4d4a38dbe30ba9507198960..67deb210d37d720dab2a7bf10acdfee65813d84c 100644 (file)
@@ -2796,7 +2796,7 @@ done:
 
 static int be_clear(struct be_adapter *adapter)
 {
-       int i = 1;
+       int i;
 
        if (adapter->flags & BE_FLAGS_WORKER_SCHEDULED) {
                cancel_delayed_work_sync(&adapter->work);
@@ -2806,9 +2806,11 @@ static int be_clear(struct be_adapter *adapter)
        if (sriov_enabled(adapter))
                be_vf_clear(adapter);
 
-       for (; adapter->uc_macs > 0; adapter->uc_macs--, i++)
+       /* delete the primary mac along with the uc-mac list */
+       for (i = 0; i < (adapter->uc_macs + 1); i++)
                be_cmd_pmac_del(adapter, adapter->if_handle,
-                       adapter->pmac_id[i], 0);
+                               adapter->pmac_id[i], 0);
+       adapter->uc_macs = 0;
 
        be_cmd_if_destroy(adapter, adapter->if_handle,  0);