Commit a7a53392 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] s390: zfcp host adapter

From: Martin Schwidefsky <schwidefsky@de.ibm.com>

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.
parent b42e64d4
......@@ -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 <linux/init.h>
#include <linux/module.h>
......@@ -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;
}
......
......@@ -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",
......
......@@ -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:
......
......@@ -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
<http://oss.software.ibm.com/developerworks/opensource/linux390>
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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment