]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.31/patches.arch/s390-11-03-qeth_recovery_drop_mac.patch
Move xen patchset to new version's subdir.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.arch / s390-11-03-qeth_recovery_drop_mac.patch
diff --git a/src/patches/suse-2.6.27.31/patches.arch/s390-11-03-qeth_recovery_drop_mac.patch b/src/patches/suse-2.6.27.31/patches.arch/s390-11-03-qeth_recovery_drop_mac.patch
new file mode 100644 (file)
index 0000000..4b1313f
--- /dev/null
@@ -0,0 +1,37 @@
+From: Gerald Schaefer <geraldsc@de.ibm.com>
+Subject: qeth: unregister MAC addresses during recovery.
+References: bnc#484767,LTC#52200
+
+Symptom: After thousands of recovery cycles no more MAC addresses are
+registered at z/VM GuestLAN adapter.
+Problem: MAC address table of GuestLAN adapter full.
+Solution: 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.
+
+Acked-by: John Jolly <jjolly@suse.de>
+---
+Index: linux-sles11/drivers/s390/net/qeth_l2_main.c
+===================================================================
+--- linux-sles11.orig/drivers/s390/net/qeth_l2_main.c
++++ linux-sles11/drivers/s390/net/qeth_l2_main.c
+@@ -388,7 +388,8 @@ static int qeth_l2_stop_card(struct qeth
+                       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);
+@@ -397,7 +398,8 @@ static int qeth_l2_stop_card(struct qeth
+       }
+       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;