switch (gen_crq->cmd) {
                case IBMVNIC_CRQ_INIT:
                        dev_info(dev, "Partner initialized\n");
+                       adapter->from_passive_init = true;
+                       complete(&adapter->init_done);
                        break;
                case IBMVNIC_CRQ_INIT_COMPLETE:
                        dev_info(dev, "Partner initialization complete\n");
                return rc;
        }
 
+       adapter->from_passive_init = false;
+
        init_completion(&adapter->init_done);
        ibmvnic_send_crq_init(adapter);
        if (!wait_for_completion_timeout(&adapter->init_done, timeout)) {
                dev_err(dev, "Initialization sequence timed out\n");
-               release_crq_queue(adapter);
+               return -1;
+       }
+
+       if (adapter->from_passive_init) {
+               adapter->state = VNIC_OPEN;
+               adapter->from_passive_init = false;
                return -1;
        }