aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/ibmvscsi/viosrp.h
diff options
context:
space:
mode:
authorRobert Jennings <rcj@linux.vnet.ibm.com>2009-06-08 17:19:07 -0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-06-08 19:05:20 -0400
commitc1988e3123751fd425fbae99d5c1776608e965a9 (patch)
tree01ebad88b7799665097a96b4b8f0da447c0e4ee2 /drivers/scsi/ibmvscsi/viosrp.h
parent3507e13fcba6b97501891a410ec8ef9f1f188620 (diff)
[SCSI] ibmvscsi: Enable fast fail feature
A new mode of error reporting, fast fail, has been added to the VIOS which allows failover to happen more quickly. If this new fast fail mode is enabled on the VIOS and the vSCSI client supports the mode, the VIOS will not return MEDIUM error on path failures, but rather return VIOSRP_ADAPTER_FAIL in the crq response, which ibmvscsi will translate to DID_ERROR. This new mode can be enabled for single path configurations as well, so it is the new default error reporting mode. A module parameter is provided to disable this new behavior on the off chance it causes a problem on some old VIOS version. Signed-off-by: Brian King <brking@linux.vnet.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/ibmvscsi/viosrp.h')
-rw-r--r--drivers/scsi/ibmvscsi/viosrp.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/scsi/ibmvscsi/viosrp.h b/drivers/scsi/ibmvscsi/viosrp.h
index 204604501ad8..f5a9c26d1da8 100644
--- a/drivers/scsi/ibmvscsi/viosrp.h
+++ b/drivers/scsi/ibmvscsi/viosrp.h
@@ -86,7 +86,14 @@ enum viosrp_mad_types {
86 VIOSRP_EMPTY_IU_TYPE = 0x01, 86 VIOSRP_EMPTY_IU_TYPE = 0x01,
87 VIOSRP_ERROR_LOG_TYPE = 0x02, 87 VIOSRP_ERROR_LOG_TYPE = 0x02,
88 VIOSRP_ADAPTER_INFO_TYPE = 0x03, 88 VIOSRP_ADAPTER_INFO_TYPE = 0x03,
89 VIOSRP_HOST_CONFIG_TYPE = 0x04 89 VIOSRP_HOST_CONFIG_TYPE = 0x04,
90 VIOSRP_ENABLE_FAST_FAIL = 0x08,
91};
92
93enum viosrp_mad_status {
94 VIOSRP_MAD_SUCCESS = 0x00,
95 VIOSRP_MAD_NOT_SUPPORTED = 0xF1,
96 VIOSRP_MAD_FAILED = 0xF7,
90}; 97};
91 98
92/* 99/*
@@ -127,11 +134,16 @@ struct viosrp_host_config {
127 u64 buffer; 134 u64 buffer;
128}; 135};
129 136
137struct viosrp_fast_fail {
138 struct mad_common common;
139};
140
130union mad_iu { 141union mad_iu {
131 struct viosrp_empty_iu empty_iu; 142 struct viosrp_empty_iu empty_iu;
132 struct viosrp_error_log error_log; 143 struct viosrp_error_log error_log;
133 struct viosrp_adapter_info adapter_info; 144 struct viosrp_adapter_info adapter_info;
134 struct viosrp_host_config host_config; 145 struct viosrp_host_config host_config;
146 struct viosrp_fast_fail fast_fail;
135}; 147};
136 148
137union viosrp_iu { 149union viosrp_iu {