read_unlock_irqrestore(&adapter->erp_lock, flags);
 }
 
-static int zfcp_erp_adapter_strategy_open_qdio(struct zfcp_erp_action *act)
-{
-       struct zfcp_qdio *qdio = act->adapter->qdio;
-
-       if (zfcp_qdio_open(qdio))
-               return ZFCP_ERP_FAILED;
-       init_waitqueue_head(&qdio->req_q_wq);
-       atomic_set_mask(ZFCP_STATUS_ADAPTER_QDIOUP, &act->adapter->status);
-       return ZFCP_ERP_SUCCEEDED;
-}
-
 static void zfcp_erp_enqueue_ptp_port(struct zfcp_adapter *adapter)
 {
        struct zfcp_port *port;
 {
        struct zfcp_adapter *adapter = act->adapter;
 
-       if (zfcp_erp_adapter_strategy_open_qdio(act)) {
+       if (zfcp_qdio_open(adapter->qdio)) {
                atomic_clear_mask(ZFCP_STATUS_ADAPTER_XCONFIG_OK |
                                  ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED,
                                  &adapter->status);
 
                return -ENOMEM;
 
        zfcp_qdio_setup_init_data(&init_data, qdio);
+       init_waitqueue_head(&qdio->req_q_wq);
 
        return qdio_allocate(&init_data);
 }
        /* set index of first avalable SBALS / number of available SBALS */
        qdio->req_q_idx = 0;
        atomic_set(&qdio->req_q_free, QDIO_MAX_BUFFERS_PER_Q);
+       atomic_set_mask(ZFCP_STATUS_ADAPTER_QDIOUP, &qdio->adapter->status);
 
        return 0;