qeth: keep ip-address after LAN_OFFLINE failure
authorUrsula Braun <braunu@de.ibm.com>
Tue, 1 Apr 2008 08:27:00 +0000 (10:27 +0200)
committerJeff Garzik <jgarzik@redhat.com>
Thu, 17 Apr 2008 00:41:42 +0000 (20:41 -0400)
Problem:     If setting of an ip-address fails with LAN_OFFLINE,
             qeth does not save the ip-address in its internal
             list of set ip-addresses. qeth recovers after a
             following STARTLAN event, but cannot set the unsaved
             ip-address.
Solution:    save the ip-address in the qeth-maintained list of
             ip-addresses after a LAN_OFFLINE failure for SETIP.

Signed-off-by: Ursula Braun <braunu@de.ibm.com>
Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/s390/net/qeth_l3_main.c

index c5e90ee..e1bfe56 100644 (file)
@@ -461,7 +461,7 @@ static void qeth_l3_set_ip_addr_list(struct qeth_card *card)
                        spin_unlock_irqrestore(&card->ip_lock, flags);
                        rc = qeth_l3_register_addr_entry(card, todo);
                        spin_lock_irqsave(&card->ip_lock, flags);
-                       if (!rc)
+                       if (!rc || (rc == IPA_RC_LAN_OFFLINE))
                                list_add_tail(&todo->entry, &card->ip_list);
                        else
                                kfree(todo);