diff options
author | Ursula Braun <braunu@de.ibm.com> | 2007-06-20 06:56:49 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-06-20 19:12:42 -0400 |
commit | d81ef0fb76ef2eb7126f64cb34217d2ddfb48483 (patch) | |
tree | 80bd2a306d9f234d7868c899cf190cce7e47d30e /drivers/s390 | |
parent | d78f6642bea3b8f064dcb9a17db58593ef8cc0fb (diff) |
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: Ursula Braun <braunu@de.ibm.com>
Signed-off-by: Frank Pavlic <fpavlic@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/net/qeth_main.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/s390/net/qeth_main.c b/drivers/s390/net/qeth_main.c index ea2fd980cb45..c5a95079b5ed 100644 --- a/drivers/s390/net/qeth_main.c +++ b/drivers/s390/net/qeth_main.c | |||
@@ -986,15 +986,15 @@ qeth_recover(void *ptr) | |||
986 | card->use_hard_stop = 1; | 986 | card->use_hard_stop = 1; |
987 | __qeth_set_offline(card->gdev,1); | 987 | __qeth_set_offline(card->gdev,1); |
988 | rc = __qeth_set_online(card->gdev,1); | 988 | rc = __qeth_set_online(card->gdev,1); |
989 | /* don't run another scheduled recovery */ | ||
990 | qeth_clear_thread_start_bit(card, QETH_RECOVER_THREAD); | ||
991 | qeth_clear_thread_running_bit(card, QETH_RECOVER_THREAD); | ||
989 | if (!rc) | 992 | if (!rc) |
990 | PRINT_INFO("Device %s successfully recovered!\n", | 993 | PRINT_INFO("Device %s successfully recovered!\n", |
991 | CARD_BUS_ID(card)); | 994 | CARD_BUS_ID(card)); |
992 | else | 995 | else |
993 | PRINT_INFO("Device %s could not be recovered!\n", | 996 | PRINT_INFO("Device %s could not be recovered!\n", |
994 | CARD_BUS_ID(card)); | 997 | CARD_BUS_ID(card)); |
995 | /* don't run another scheduled recovery */ | ||
996 | qeth_clear_thread_start_bit(card, QETH_RECOVER_THREAD); | ||
997 | qeth_clear_thread_running_bit(card, QETH_RECOVER_THREAD); | ||
998 | return 0; | 998 | return 0; |
999 | } | 999 | } |
1000 | 1000 | ||
@@ -7476,11 +7476,11 @@ qeth_softsetup_card(struct qeth_card *card) | |||
7476 | QETH_DBF_TEXT_(setup, 2, "1err%d", rc); | 7476 | QETH_DBF_TEXT_(setup, 2, "1err%d", rc); |
7477 | if (rc == 0xe080){ | 7477 | if (rc == 0xe080){ |
7478 | PRINT_WARN("LAN on card %s if offline! " | 7478 | PRINT_WARN("LAN on card %s if offline! " |
7479 | "Continuing softsetup.\n", | 7479 | "Waiting for STARTLAN from card.\n", |
7480 | CARD_BUS_ID(card)); | 7480 | CARD_BUS_ID(card)); |
7481 | card->lan_online = 0; | 7481 | card->lan_online = 0; |
7482 | } else | 7482 | } |
7483 | return rc; | 7483 | return rc; |
7484 | } else | 7484 | } else |
7485 | card->lan_online = 1; | 7485 | card->lan_online = 1; |
7486 | if (card->info.type==QETH_CARD_TYPE_OSN) | 7486 | if (card->info.type==QETH_CARD_TYPE_OSN) |