From a7a533926779438ad83cef66950137d3c7b3e998 Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Fri, 14 May 2004 05:50:22 -0700 Subject: [PATCH] [PATCH] s390: zfcp host adapter From: Martin Schwidefsky zfcp host adapter change: - Prevent infinite retry of SCSI commands when FCP adapter is unavailable. - Always queue error recovery structure to the error recovery running list. - Add help text to zfcp config option. --- drivers/s390/scsi/zfcp_ccw.c | 8 +++++++- drivers/s390/scsi/zfcp_erp.c | 5 +++-- drivers/s390/scsi/zfcp_fsf.c | 4 ++-- drivers/scsi/Kconfig | 11 ++++++++++- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/drivers/s390/scsi/zfcp_ccw.c b/drivers/s390/scsi/zfcp_ccw.c index c509c1346af7d..8a623f74e70d6 100644 --- a/drivers/s390/scsi/zfcp_ccw.c +++ b/drivers/s390/scsi/zfcp_ccw.c @@ -26,7 +26,7 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#define ZFCP_CCW_C_REVISION "$Revision: 1.52 $" +#define ZFCP_CCW_C_REVISION "$Revision: 1.54 $" #include #include @@ -232,14 +232,19 @@ zfcp_ccw_notify(struct ccw_device *ccw_device, int event) case CIO_GONE: ZFCP_LOG_NORMAL("adapter %s: device gone\n", zfcp_get_busid_by_adapter(adapter)); + debug_text_event(adapter->erp_dbf,1,"dev_gone"); + zfcp_erp_adapter_shutdown(adapter, 0); break; case CIO_NO_PATH: ZFCP_LOG_NORMAL("adapter %s: no path\n", zfcp_get_busid_by_adapter(adapter)); + debug_text_event(adapter->erp_dbf,1,"no_path"); + zfcp_erp_adapter_shutdown(adapter, 0); break; case CIO_OPER: ZFCP_LOG_NORMAL("adapter %s: operational again\n", zfcp_get_busid_by_adapter(adapter)); + debug_text_event(adapter->erp_dbf,1,"dev_oper"); zfcp_erp_modify_adapter_status(adapter, ZFCP_STATUS_COMMON_RUNNING, ZFCP_SET); @@ -247,6 +252,7 @@ zfcp_ccw_notify(struct ccw_device *ccw_device, int event) ZFCP_STATUS_COMMON_ERP_FAILED); break; } + zfcp_erp_wait(adapter); up(&zfcp_data.config_sema); return 1; } diff --git a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c index 045d04ba84974..7a0a2bf53a1bb 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.52 $" #include "zfcp_ext.h" @@ -2540,6 +2540,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 +2567,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", diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c index 79bb0bab483f4..29317226e1c6d 100644 --- a/drivers/s390/scsi/zfcp_fsf.c +++ b/drivers/s390/scsi/zfcp_fsf.c @@ -29,7 +29,7 @@ */ /* this drivers version (do not edit !!! generated and updated by cvs) */ -#define ZFCP_FSF_C_REVISION "$Revision: 1.45 $" +#define ZFCP_FSF_C_REVISION "$Revision: 1.46 $" #include "zfcp_ext.h" @@ -412,7 +412,7 @@ zfcp_fsf_protstatus_eval(struct zfcp_fsf_req *fsf_req) fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; atomic_set_mask(ZFCP_STATUS_ADAPTER_HOST_CON_INIT, &(adapter->status)); - debug_text_event(adapter->erp_dbf, 4, "prot_con_init"); + debug_text_event(adapter->erp_dbf, 3, "prot_con_init"); break; case FSF_PROT_DUPLICATE_REQUEST_ID: diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig index e3d65c1faf436..20ec04a4d9975 100644 --- a/drivers/scsi/Kconfig +++ b/drivers/scsi/Kconfig @@ -1736,8 +1736,17 @@ config WD33C93_PIO # bool 'Cyberstorm Mk III SCSI support (EXPERIMENTAL)' CONFIG_CYBERSTORMIII_SCSI config ZFCP - tristate "IBM z900 OpenFCP/SCSI support" + tristate "FCP host bus adapter driver for IBM eServer zSeries" depends on ARCH_S390 && SCSI + help + If you want to access SCSI devices attached to your IBM eServer + zSeries by means of Fibre Channel interfaces say Y. + For details please refer to the documentation provided by IBM at + + + This driver is also available as a module. This module will be + called zfcp. If you want to compile it as a module, say M here + and read Documentation/modules.txt. endmenu -- 2.53.0