|
@@ -1660,7 +1660,6 @@ int qeth_qdio_clear_card(struct qeth_card *card, int use_halt)
|
|
QDIO_FLAG_CLEANUP_USING_CLEAR);
|
|
QDIO_FLAG_CLEANUP_USING_CLEAR);
|
|
if (rc)
|
|
if (rc)
|
|
QETH_CARD_TEXT_(card, 3, "1err%d", rc);
|
|
QETH_CARD_TEXT_(card, 3, "1err%d", rc);
|
|
- qdio_free(CARD_DDEV(card));
|
|
|
|
atomic_set(&card->qdio.state, QETH_QDIO_ALLOCATED);
|
|
atomic_set(&card->qdio.state, QETH_QDIO_ALLOCATED);
|
|
break;
|
|
break;
|
|
case QETH_QDIO_CLEANING:
|
|
case QETH_QDIO_CLEANING:
|
|
@@ -2605,6 +2604,7 @@ static int qeth_mpc_initialize(struct qeth_card *card)
|
|
return 0;
|
|
return 0;
|
|
out_qdio:
|
|
out_qdio:
|
|
qeth_qdio_clear_card(card, card->info.type != QETH_CARD_TYPE_IQD);
|
|
qeth_qdio_clear_card(card, card->info.type != QETH_CARD_TYPE_IQD);
|
|
|
|
+ qdio_free(CARD_DDEV(card));
|
|
return rc;
|
|
return rc;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -4906,9 +4906,11 @@ retry:
|
|
if (retries < 3)
|
|
if (retries < 3)
|
|
QETH_DBF_MESSAGE(2, "%s Retrying to do IDX activates.\n",
|
|
QETH_DBF_MESSAGE(2, "%s Retrying to do IDX activates.\n",
|
|
dev_name(&card->gdev->dev));
|
|
dev_name(&card->gdev->dev));
|
|
|
|
+ rc = qeth_qdio_clear_card(card, card->info.type != QETH_CARD_TYPE_IQD);
|
|
ccw_device_set_offline(CARD_DDEV(card));
|
|
ccw_device_set_offline(CARD_DDEV(card));
|
|
ccw_device_set_offline(CARD_WDEV(card));
|
|
ccw_device_set_offline(CARD_WDEV(card));
|
|
ccw_device_set_offline(CARD_RDEV(card));
|
|
ccw_device_set_offline(CARD_RDEV(card));
|
|
|
|
+ qdio_free(CARD_DDEV(card));
|
|
rc = ccw_device_set_online(CARD_RDEV(card));
|
|
rc = ccw_device_set_online(CARD_RDEV(card));
|
|
if (rc)
|
|
if (rc)
|
|
goto retriable;
|
|
goto retriable;
|
|
@@ -4918,7 +4920,6 @@ retry:
|
|
rc = ccw_device_set_online(CARD_DDEV(card));
|
|
rc = ccw_device_set_online(CARD_DDEV(card));
|
|
if (rc)
|
|
if (rc)
|
|
goto retriable;
|
|
goto retriable;
|
|
- rc = qeth_qdio_clear_card(card, card->info.type != QETH_CARD_TYPE_IQD);
|
|
|
|
retriable:
|
|
retriable:
|
|
if (rc == -ERESTARTSYS) {
|
|
if (rc == -ERESTARTSYS) {
|
|
QETH_DBF_TEXT(SETUP, 2, "break1");
|
|
QETH_DBF_TEXT(SETUP, 2, "break1");
|