s390/qeth: fix qdio teardown after early init error
[linux-2.6-block.git] / drivers / s390 / net / qeth_core_main.c
index bc4158888af96e19e72dbe6cc2065c83a08ea149..324cf22f9111c5760010d76c92834508af8c15c0 100644 (file)
@@ -2482,50 +2482,46 @@ static int qeth_mpc_initialize(struct qeth_card *card)
        rc = qeth_cm_enable(card);
        if (rc) {
                QETH_CARD_TEXT_(card, 2, "2err%d", rc);
-               goto out_qdio;
+               return rc;
        }
        rc = qeth_cm_setup(card);
        if (rc) {
                QETH_CARD_TEXT_(card, 2, "3err%d", rc);
-               goto out_qdio;
+               return rc;
        }
        rc = qeth_ulp_enable(card);
        if (rc) {
                QETH_CARD_TEXT_(card, 2, "4err%d", rc);
-               goto out_qdio;
+               return rc;
        }
        rc = qeth_ulp_setup(card);
        if (rc) {
                QETH_CARD_TEXT_(card, 2, "5err%d", rc);
-               goto out_qdio;
+               return rc;
        }
        rc = qeth_alloc_qdio_queues(card);
        if (rc) {
                QETH_CARD_TEXT_(card, 2, "5err%d", rc);
-               goto out_qdio;
+               return rc;
        }
        rc = qeth_qdio_establish(card);
        if (rc) {
                QETH_CARD_TEXT_(card, 2, "6err%d", rc);
                qeth_free_qdio_queues(card);
-               goto out_qdio;
+               return rc;
        }
        rc = qeth_qdio_activate(card);
        if (rc) {
                QETH_CARD_TEXT_(card, 2, "7err%d", rc);
-               goto out_qdio;
+               return rc;
        }
        rc = qeth_dm_act(card);
        if (rc) {
                QETH_CARD_TEXT_(card, 2, "8err%d", rc);
-               goto out_qdio;
+               return rc;
        }
 
        return 0;
-out_qdio:
-       qeth_qdio_clear_card(card, !IS_IQD(card));
-       qdio_free(CARD_DDEV(card));
-       return rc;
 }
 
 void qeth_print_status_message(struct qeth_card *card)