qeth: unregister MAC addresses during recovery.
authorKlaus-Dieter Wacker <kdwacker@de.ibm.com>
Tue, 24 Mar 2009 20:57:17 +0000 (20:57 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 25 Mar 2009 07:06:22 +0000 (00:06 -0700)
qeth: Unregister MAC addresses from device (layer 2) during
recovery cycle. When the device is set online the MAC
addresses are registered again on the device.

Signed-off-by: Klaus-Dieter Wacker <kdwacker@de.ibm.com>
Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/s390/net/qeth_l2_main.c

index 9e628b322bd30c11fb67c9b437835f0880a8bea1..ecd7efc5e31599c892de9667822bfbe84550dc28 100644 (file)
@@ -378,7 +378,8 @@ static int qeth_l2_stop_card(struct qeth_card *card, int recovery_mode)
                        dev_close(card->dev);
                        rtnl_unlock();
                }
-               if (!card->use_hard_stop) {
+               if (!card->use_hard_stop ||
+                       recovery_mode) {
                        __u8 *mac = &card->dev->dev_addr[0];
                        rc = qeth_l2_send_delmac(card, mac);
                        QETH_DBF_TEXT_(SETUP, 2, "Lerr%d", rc);
@@ -387,7 +388,8 @@ static int qeth_l2_stop_card(struct qeth_card *card, int recovery_mode)
        }
        if (card->state == CARD_STATE_SOFTSETUP) {
                qeth_l2_process_vlans(card, 1);
-               if (!card->use_hard_stop)
+               if (!card->use_hard_stop ||
+                       recovery_mode)
                        qeth_l2_del_all_mc(card);
                qeth_clear_ipacmd_list(card);
                card->state = CARD_STATE_HARDSETUP;