Commit d81ef0fb authored by Ursula Braun's avatar Ursula Braun Committed by Jeff Garzik

s390: qeth driver does not recover

While first recovery continues, the card issues
a STARTLAN command itself. In this case qeth
schedules another recovery. This second
recovery is cancelled because of an already running first recovery.
Stop first recovery in case of 0xe080.
Signed-off-by: default avatarUrsula Braun <braunu@de.ibm.com>
Signed-off-by: default avatarFrank Pavlic <fpavlic@de.ibm.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent d78f6642
...@@ -986,15 +986,15 @@ qeth_recover(void *ptr) ...@@ -986,15 +986,15 @@ qeth_recover(void *ptr)
card->use_hard_stop = 1; card->use_hard_stop = 1;
__qeth_set_offline(card->gdev,1); __qeth_set_offline(card->gdev,1);
rc = __qeth_set_online(card->gdev,1); rc = __qeth_set_online(card->gdev,1);
/* don't run another scheduled recovery */
qeth_clear_thread_start_bit(card, QETH_RECOVER_THREAD);
qeth_clear_thread_running_bit(card, QETH_RECOVER_THREAD);
if (!rc) if (!rc)
PRINT_INFO("Device %s successfully recovered!\n", PRINT_INFO("Device %s successfully recovered!\n",
CARD_BUS_ID(card)); CARD_BUS_ID(card));
else else
PRINT_INFO("Device %s could not be recovered!\n", PRINT_INFO("Device %s could not be recovered!\n",
CARD_BUS_ID(card)); CARD_BUS_ID(card));
/* don't run another scheduled recovery */
qeth_clear_thread_start_bit(card, QETH_RECOVER_THREAD);
qeth_clear_thread_running_bit(card, QETH_RECOVER_THREAD);
return 0; return 0;
} }
...@@ -7476,10 +7476,10 @@ qeth_softsetup_card(struct qeth_card *card) ...@@ -7476,10 +7476,10 @@ qeth_softsetup_card(struct qeth_card *card)
QETH_DBF_TEXT_(setup, 2, "1err%d", rc); QETH_DBF_TEXT_(setup, 2, "1err%d", rc);
if (rc == 0xe080){ if (rc == 0xe080){
PRINT_WARN("LAN on card %s if offline! " PRINT_WARN("LAN on card %s if offline! "
"Continuing softsetup.\n", "Waiting for STARTLAN from card.\n",
CARD_BUS_ID(card)); CARD_BUS_ID(card));
card->lan_online = 0; card->lan_online = 0;
} else }
return rc; return rc;
} else } else
card->lan_online = 1; card->lan_online = 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment