diff options
author | Maxim Shchetynin <maxim@de.ibm.com> | 2006-01-05 03:56:47 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.(none)> | 2006-01-14 11:54:49 -0500 |
commit | 9eb69aff79264b5f35e41922df20a488c67e9ee2 (patch) | |
tree | 96bb41b45a4e5be1785af95aef57c49d505604c7 /drivers | |
parent | 6b7281d0a0f8f99d39808088a036459f6f7906a6 (diff) |
[SCSI] zfcp: handle unsolicited status notification lost
Handle unsolicited adapter status that informs about loss of
previous unsolicited status notification(s).
Signed-off-by: Maxim Shchetynin <maxim@de.ibm.com>
Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/s390/scsi/zfcp_fsf.c | 35 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_fsf.h | 12 |
2 files changed, 47 insertions, 0 deletions
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c index 59587951c847..bf859c9982df 100644 --- a/drivers/s390/scsi/zfcp_fsf.c +++ b/drivers/s390/scsi/zfcp_fsf.c | |||
@@ -964,6 +964,40 @@ zfcp_fsf_status_read_handler(struct zfcp_fsf_req *fsf_req) | |||
964 | | ZFCP_STATUS_COMMON_ERP_FAILED); | 964 | | ZFCP_STATUS_COMMON_ERP_FAILED); |
965 | break; | 965 | break; |
966 | 966 | ||
967 | case FSF_STATUS_READ_NOTIFICATION_LOST: | ||
968 | ZFCP_LOG_NORMAL("Unsolicited status notification(s) lost: " | ||
969 | "adapter %s%s%s%s%s%s%s%s%s\n", | ||
970 | zfcp_get_busid_by_adapter(adapter), | ||
971 | (status_buffer->status_subtype & | ||
972 | FSF_STATUS_READ_SUB_INCOMING_ELS) ? | ||
973 | ", incoming ELS" : "", | ||
974 | (status_buffer->status_subtype & | ||
975 | FSF_STATUS_READ_SUB_SENSE_DATA) ? | ||
976 | ", sense data" : "", | ||
977 | (status_buffer->status_subtype & | ||
978 | FSF_STATUS_READ_SUB_LINK_STATUS) ? | ||
979 | ", link status change" : "", | ||
980 | (status_buffer->status_subtype & | ||
981 | FSF_STATUS_READ_SUB_PORT_CLOSED) ? | ||
982 | ", port close" : "", | ||
983 | (status_buffer->status_subtype & | ||
984 | FSF_STATUS_READ_SUB_BIT_ERROR_THRESHOLD) ? | ||
985 | ", bit error exception" : "", | ||
986 | (status_buffer->status_subtype & | ||
987 | FSF_STATUS_READ_SUB_ACT_UPDATED) ? | ||
988 | ", ACT update" : "", | ||
989 | (status_buffer->status_subtype & | ||
990 | FSF_STATUS_READ_SUB_ACT_HARDENED) ? | ||
991 | ", ACT hardening" : "", | ||
992 | (status_buffer->status_subtype & | ||
993 | FSF_STATUS_READ_SUB_FEATURE_UPDATE_ALERT) ? | ||
994 | ", adapter feature change" : ""); | ||
995 | |||
996 | if (status_buffer->status_subtype & | ||
997 | FSF_STATUS_READ_SUB_ACT_UPDATED) | ||
998 | zfcp_erp_adapter_access_changed(adapter); | ||
999 | break; | ||
1000 | |||
967 | case FSF_STATUS_READ_CFDC_UPDATED: | 1001 | case FSF_STATUS_READ_CFDC_UPDATED: |
968 | ZFCP_LOG_NORMAL("CFDC has been updated on the adapter %s\n", | 1002 | ZFCP_LOG_NORMAL("CFDC has been updated on the adapter %s\n", |
969 | zfcp_get_busid_by_adapter(adapter)); | 1003 | zfcp_get_busid_by_adapter(adapter)); |
@@ -1954,6 +1988,7 @@ zfcp_fsf_exchange_config_data(struct zfcp_erp_action *erp_action) | |||
1954 | erp_action->fsf_req->qtcb->bottom.config.feature_selection = | 1988 | erp_action->fsf_req->qtcb->bottom.config.feature_selection = |
1955 | FSF_FEATURE_CFDC | | 1989 | FSF_FEATURE_CFDC | |
1956 | FSF_FEATURE_LUN_SHARING | | 1990 | FSF_FEATURE_LUN_SHARING | |
1991 | FSF_FEATURE_NOTIFICATION_LOST | | ||
1957 | FSF_FEATURE_UPDATE_ALERT; | 1992 | FSF_FEATURE_UPDATE_ALERT; |
1958 | 1993 | ||
1959 | /* start QDIO request for this FSF request */ | 1994 | /* start QDIO request for this FSF request */ |
diff --git a/drivers/s390/scsi/zfcp_fsf.h b/drivers/s390/scsi/zfcp_fsf.h index 48719f055952..39475dbcb614 100644 --- a/drivers/s390/scsi/zfcp_fsf.h +++ b/drivers/s390/scsi/zfcp_fsf.h | |||
@@ -166,6 +166,7 @@ | |||
166 | #define FSF_STATUS_READ_BIT_ERROR_THRESHOLD 0x00000004 | 166 | #define FSF_STATUS_READ_BIT_ERROR_THRESHOLD 0x00000004 |
167 | #define FSF_STATUS_READ_LINK_DOWN 0x00000005 | 167 | #define FSF_STATUS_READ_LINK_DOWN 0x00000005 |
168 | #define FSF_STATUS_READ_LINK_UP 0x00000006 | 168 | #define FSF_STATUS_READ_LINK_UP 0x00000006 |
169 | #define FSF_STATUS_READ_NOTIFICATION_LOST 0x00000009 | ||
169 | #define FSF_STATUS_READ_CFDC_UPDATED 0x0000000A | 170 | #define FSF_STATUS_READ_CFDC_UPDATED 0x0000000A |
170 | #define FSF_STATUS_READ_CFDC_HARDENED 0x0000000B | 171 | #define FSF_STATUS_READ_CFDC_HARDENED 0x0000000B |
171 | #define FSF_STATUS_READ_FEATURE_UPDATE_ALERT 0x0000000C | 172 | #define FSF_STATUS_READ_FEATURE_UPDATE_ALERT 0x0000000C |
@@ -179,6 +180,16 @@ | |||
179 | #define FSF_STATUS_READ_SUB_FDISC_FAILED 0x00000001 | 180 | #define FSF_STATUS_READ_SUB_FDISC_FAILED 0x00000001 |
180 | #define FSF_STATUS_READ_SUB_FIRMWARE_UPDATE 0x00000002 | 181 | #define FSF_STATUS_READ_SUB_FIRMWARE_UPDATE 0x00000002 |
181 | 182 | ||
183 | /* status subtypes for unsolicited status notification lost */ | ||
184 | #define FSF_STATUS_READ_SUB_INCOMING_ELS 0x00000001 | ||
185 | #define FSF_STATUS_READ_SUB_SENSE_DATA 0x00000002 | ||
186 | #define FSF_STATUS_READ_SUB_LINK_STATUS 0x00000004 | ||
187 | #define FSF_STATUS_READ_SUB_PORT_CLOSED 0x00000008 | ||
188 | #define FSF_STATUS_READ_SUB_BIT_ERROR_THRESHOLD 0x00000010 | ||
189 | #define FSF_STATUS_READ_SUB_ACT_UPDATED 0x00000020 | ||
190 | #define FSF_STATUS_READ_SUB_ACT_HARDENED 0x00000040 | ||
191 | #define FSF_STATUS_READ_SUB_FEATURE_UPDATE_ALERT 0x00000080 | ||
192 | |||
182 | /* status subtypes for CFDC */ | 193 | /* status subtypes for CFDC */ |
183 | #define FSF_STATUS_READ_SUB_CFDC_HARDENED_ON_SE 0x00000002 | 194 | #define FSF_STATUS_READ_SUB_CFDC_HARDENED_ON_SE 0x00000002 |
184 | #define FSF_STATUS_READ_SUB_CFDC_HARDENED_ON_SE2 0x0000000F | 195 | #define FSF_STATUS_READ_SUB_CFDC_HARDENED_ON_SE2 0x0000000F |
@@ -211,6 +222,7 @@ | |||
211 | /* channel features */ | 222 | /* channel features */ |
212 | #define FSF_FEATURE_CFDC 0x00000002 | 223 | #define FSF_FEATURE_CFDC 0x00000002 |
213 | #define FSF_FEATURE_LUN_SHARING 0x00000004 | 224 | #define FSF_FEATURE_LUN_SHARING 0x00000004 |
225 | #define FSF_FEATURE_NOTIFICATION_LOST 0x00000008 | ||
214 | #define FSF_FEATURE_HBAAPI_MANAGEMENT 0x00000010 | 226 | #define FSF_FEATURE_HBAAPI_MANAGEMENT 0x00000010 |
215 | #define FSF_FEATURE_ELS_CT_CHAINED_SBALS 0x00000020 | 227 | #define FSF_FEATURE_ELS_CT_CHAINED_SBALS 0x00000020 |
216 | #define FSF_FEATURE_UPDATE_ALERT 0x00000100 | 228 | #define FSF_FEATURE_UPDATE_ALERT 0x00000100 |