X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fs390%2Fscsi%2Fzfcp_erp.c;h=505e16ff5d0f5f808cb04b6b62fe7724261cf285;hb=4e4f43fe003969bdaa246374b90e16708a22ef79;hp=045d04ba84974f7ab26918e2dd5b9222da474419;hpb=86090fcac5e27b630656fe3d963a6b80e26dac44;p=linux-2.6.git diff --git a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c index 045d04ba8..505e16ff5 100644 --- a/drivers/s390/scsi/zfcp_erp.c +++ b/drivers/s390/scsi/zfcp_erp.c @@ -31,7 +31,7 @@ #define ZFCP_LOG_AREA ZFCP_LOG_AREA_ERP /* this drivers version (do not edit !!! generated and updated by cvs) */ -#define ZFCP_ERP_REVISION "$Revision: 1.51 $" +#define ZFCP_ERP_REVISION "$Revision: 1.54 $" #include "zfcp_ext.h" @@ -126,37 +126,6 @@ static void zfcp_erp_memwait_handler(unsigned long); static void zfcp_erp_timeout_handler(unsigned long); static inline void zfcp_erp_timeout_init(struct zfcp_erp_action *); -/* - * function: zfcp_erp_adapter_shutdown_all - * - * purpose: recursively calls zfcp_erp_adapter_shutdown to stop all - * IO on each adapter, return all outstanding packets and - * relinquish all IRQs - * Note: This function waits for completion of all shutdowns - * - * returns: 0 in all cases - */ -int -zfcp_erp_adapter_shutdown_all(void) -{ - int retval = 0; - unsigned long flags; - struct zfcp_adapter *adapter; - - read_lock_irqsave(&zfcp_data.config_lock, flags); - list_for_each_entry(adapter, &zfcp_data.adapter_list_head, list) - zfcp_erp_adapter_shutdown(adapter, 0); - read_unlock_irqrestore(&zfcp_data.config_lock, flags); - - /* - * FIXME : need to take config_lock but cannot, since we schedule here. - */ - /* start all shutdowns first before any waiting to allow for concurreny */ - list_for_each_entry(adapter, &zfcp_data.adapter_list_head, list) - zfcp_erp_wait(adapter); - - return retval; -} /* * function: zfcp_fsf_scsi_er_timeout_handler @@ -2328,7 +2297,7 @@ zfcp_erp_adapter_strategy_open_qdio(struct zfcp_erp_action *erp_action) if (qdio_establish(&adapter->qdio_init_data) != 0) { ZFCP_LOG_INFO("error: establishment of QDIO queues failed " - "on adapter %s\n.", + "on adapter %s\n", zfcp_get_busid_by_adapter(adapter)); goto failed_qdio_establish; } @@ -2540,6 +2509,7 @@ zfcp_erp_adapter_strategy_open_fsf_xconfig(struct zfcp_erp_action *erp_action) atomic_clear_mask(ZFCP_STATUS_ADAPTER_HOST_CON_INIT, &adapter->status); ZFCP_LOG_DEBUG("Doing exchange config data\n"); + zfcp_erp_action_to_running(erp_action); zfcp_erp_timeout_init(erp_action); if (zfcp_fsf_exchange_config_data(erp_action)) { retval = ZFCP_ERP_FAILED; @@ -2566,7 +2536,7 @@ zfcp_erp_adapter_strategy_open_fsf_xconfig(struct zfcp_erp_action *erp_action) * _must_ be the one belonging to the 'exchange config * data' request. */ - down_interruptible(&adapter->erp_ready_sem); + down(&adapter->erp_ready_sem); if (erp_action->status & ZFCP_STATUS_ERP_TIMEDOUT) { ZFCP_LOG_INFO("error: exchange of configuration data " "for adapter %s timed out\n",