goto sysfs_failed;
 
        atomic_clear_mask(ZFCP_STATUS_COMMON_REMOVE, &adapter->status);
-       zfcp_fc_nameserver_init(adapter);
 
        if (!zfcp_adapter_scsi_register(adapter))
                return 0;
 
  *
  * Registration and callback for the s390 common I/O layer.
  *
- * Copyright IBM Corporation 2002, 2008
+ * Copyright IBM Corporation 2002, 2009
  */
 
 #define KMSG_COMPONENT "zfcp"
        /* initialize request counter */
        BUG_ON(!zfcp_reqlist_isempty(adapter));
        adapter->req_no = 0;
+       zfcp_fc_nameserver_init(adapter);
 
        zfcp_erp_modify_adapter_status(adapter, "ccsonl1", NULL,
                                       ZFCP_STATUS_COMMON_RUNNING, ZFCP_SET);
 
        struct zfcp_wka_port *wka_port =
                        container_of(dw, struct zfcp_wka_port, work);
 
-       wait_event(wka_port->completion_wq,
-                       atomic_read(&wka_port->refcount) == 0);
+       /* Don't wait forvever. If the wka_port is too busy take it offline
+          through a new call later */
+       if (!wait_event_timeout(wka_port->completion_wq,
+                               atomic_read(&wka_port->refcount) == 0,
+                               HZ >> 1))
+               return;
 
        mutex_lock(&wka_port->mutex);
        if ((atomic_read(&wka_port->refcount) != 0) ||