qeth: keep ip-address after LAN_OFFLINE failure
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>
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c
index c5e90ee..e1bfe56 100644
--- a/drivers/s390/net/qeth_l3_main.c
+++ b/drivers/s390/net/qeth_l3_main.c
@@ -461,7 +461,7 @@
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);