aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/scsi')
-rw-r--r--drivers/s390/scsi/zfcp_dbf.c62
1 files changed, 62 insertions, 0 deletions
diff --git a/drivers/s390/scsi/zfcp_dbf.c b/drivers/s390/scsi/zfcp_dbf.c
index 7e85e87b0ede..85ba4cc4190e 100644
--- a/drivers/s390/scsi/zfcp_dbf.c
+++ b/drivers/s390/scsi/zfcp_dbf.c
@@ -131,6 +131,10 @@ static int zfcp_dbf_view_header(debug_info_t *id, struct debug_view *view,
131 return p - out_buf; 131 return p - out_buf;
132} 132}
133 133
134/**
135 * zfcp_hba_dbf_event_fsf_response - trace event for request completion
136 * @fsf_req: request that has been completed
137 */
134void zfcp_hba_dbf_event_fsf_response(struct zfcp_fsf_req *fsf_req) 138void zfcp_hba_dbf_event_fsf_response(struct zfcp_fsf_req *fsf_req)
135{ 139{
136 struct zfcp_adapter *adapter = fsf_req->adapter; 140 struct zfcp_adapter *adapter = fsf_req->adapter;
@@ -247,6 +251,12 @@ void zfcp_hba_dbf_event_fsf_response(struct zfcp_fsf_req *fsf_req)
247 spin_unlock_irqrestore(&adapter->hba_dbf_lock, flags); 251 spin_unlock_irqrestore(&adapter->hba_dbf_lock, flags);
248} 252}
249 253
254/**
255 * zfcp_hba_dbf_event_fsf_unsol - trace event for an unsolicited status buffer
256 * @tag: tag indicating which kind of unsolicited status has been received
257 * @adapter: adapter that has issued the unsolicited status buffer
258 * @status_buffer: buffer containing payload of unsolicited status
259 */
250void zfcp_hba_dbf_event_fsf_unsol(const char *tag, struct zfcp_adapter *adapter, 260void zfcp_hba_dbf_event_fsf_unsol(const char *tag, struct zfcp_adapter *adapter,
251 struct fsf_status_read_buffer *status_buffer) 261 struct fsf_status_read_buffer *status_buffer)
252{ 262{
@@ -299,6 +309,15 @@ void zfcp_hba_dbf_event_fsf_unsol(const char *tag, struct zfcp_adapter *adapter,
299 spin_unlock_irqrestore(&adapter->hba_dbf_lock, flags); 309 spin_unlock_irqrestore(&adapter->hba_dbf_lock, flags);
300} 310}
301 311
312/**
313 * zfcp_hba_dbf_event_qdio - trace event for QDIO related failure
314 * @adapter: adapter affected by this QDIO related event
315 * @status: as passed by qdio module
316 * @qdio_error: as passed by qdio module
317 * @siga_error: as passed by qdio module
318 * @sbal_index: first buffer with error condition, as passed by qdio module
319 * @sbal_count: number of buffers affected, as passed by qdio module
320 */
302void zfcp_hba_dbf_event_qdio(struct zfcp_adapter *adapter, unsigned int status, 321void zfcp_hba_dbf_event_qdio(struct zfcp_adapter *adapter, unsigned int status,
303 unsigned int qdio_error, unsigned int siga_error, 322 unsigned int qdio_error, unsigned int siga_error,
304 int sbal_index, int sbal_count) 323 int sbal_index, int sbal_count)
@@ -810,6 +829,10 @@ void zfcp_rec_dbf_event_action(u8 id2, struct zfcp_erp_action *erp_action)
810 spin_unlock_irqrestore(&adapter->rec_dbf_lock, flags); 829 spin_unlock_irqrestore(&adapter->rec_dbf_lock, flags);
811} 830}
812 831
832/**
833 * zfcp_san_dbf_event_ct_request - trace event for issued CT request
834 * @fsf_req: request containing issued CT data
835 */
813void zfcp_san_dbf_event_ct_request(struct zfcp_fsf_req *fsf_req) 836void zfcp_san_dbf_event_ct_request(struct zfcp_fsf_req *fsf_req)
814{ 837{
815 struct zfcp_send_ct *ct = (struct zfcp_send_ct *)fsf_req->data; 838 struct zfcp_send_ct *ct = (struct zfcp_send_ct *)fsf_req->data;
@@ -840,6 +863,10 @@ void zfcp_san_dbf_event_ct_request(struct zfcp_fsf_req *fsf_req)
840 spin_unlock_irqrestore(&adapter->san_dbf_lock, flags); 863 spin_unlock_irqrestore(&adapter->san_dbf_lock, flags);
841} 864}
842 865
866/**
867 * zfcp_san_dbf_event_ct_response - trace event for completion of CT request
868 * @fsf_req: request containing CT response
869 */
843void zfcp_san_dbf_event_ct_response(struct zfcp_fsf_req *fsf_req) 870void zfcp_san_dbf_event_ct_response(struct zfcp_fsf_req *fsf_req)
844{ 871{
845 struct zfcp_send_ct *ct = (struct zfcp_send_ct *)fsf_req->data; 872 struct zfcp_send_ct *ct = (struct zfcp_send_ct *)fsf_req->data;
@@ -892,6 +919,10 @@ static void zfcp_san_dbf_event_els(const char *tag, int level,
892 spin_unlock_irqrestore(&adapter->san_dbf_lock, flags); 919 spin_unlock_irqrestore(&adapter->san_dbf_lock, flags);
893} 920}
894 921
922/**
923 * zfcp_san_dbf_event_els_request - trace event for issued ELS
924 * @fsf_req: request containing issued ELS
925 */
895void zfcp_san_dbf_event_els_request(struct zfcp_fsf_req *fsf_req) 926void zfcp_san_dbf_event_els_request(struct zfcp_fsf_req *fsf_req)
896{ 927{
897 struct zfcp_send_els *els = (struct zfcp_send_els *)fsf_req->data; 928 struct zfcp_send_els *els = (struct zfcp_send_els *)fsf_req->data;
@@ -902,6 +933,10 @@ void zfcp_san_dbf_event_els_request(struct zfcp_fsf_req *fsf_req)
902 zfcp_sg_to_address(els->req), els->req->length); 933 zfcp_sg_to_address(els->req), els->req->length);
903} 934}
904 935
936/**
937 * zfcp_san_dbf_event_els_response - trace event for completed ELS
938 * @fsf_req: request containing ELS response
939 */
905void zfcp_san_dbf_event_els_response(struct zfcp_fsf_req *fsf_req) 940void zfcp_san_dbf_event_els_response(struct zfcp_fsf_req *fsf_req)
906{ 941{
907 struct zfcp_send_els *els = (struct zfcp_send_els *)fsf_req->data; 942 struct zfcp_send_els *els = (struct zfcp_send_els *)fsf_req->data;
@@ -913,6 +948,10 @@ void zfcp_san_dbf_event_els_response(struct zfcp_fsf_req *fsf_req)
913 els->resp->length); 948 els->resp->length);
914} 949}
915 950
951/**
952 * zfcp_san_dbf_event_incoming_els - trace event for incomig ELS
953 * @fsf_req: request containing unsolicited status buffer with incoming ELS
954 */
916void zfcp_san_dbf_event_incoming_els(struct zfcp_fsf_req *fsf_req) 955void zfcp_san_dbf_event_incoming_els(struct zfcp_fsf_req *fsf_req)
917{ 956{
918 struct zfcp_adapter *adapter = fsf_req->adapter; 957 struct zfcp_adapter *adapter = fsf_req->adapter;
@@ -1069,6 +1108,14 @@ static void zfcp_scsi_dbf_event(const char *tag, const char *tag2, int level,
1069 spin_unlock_irqrestore(&adapter->scsi_dbf_lock, flags); 1108 spin_unlock_irqrestore(&adapter->scsi_dbf_lock, flags);
1070} 1109}
1071 1110
1111/**
1112 * zfcp_scsi_dbf_event_result - trace event for SCSI command completion
1113 * @tag: tag indicating success or failure of SCSI command
1114 * @level: trace level applicable for this event
1115 * @adapter: adapter that has been used to issue the SCSI command
1116 * @scsi_cmnd: SCSI command pointer
1117 * @fsf_req: request used to issue SCSI command (might be NULL)
1118 */
1072void zfcp_scsi_dbf_event_result(const char *tag, int level, 1119void zfcp_scsi_dbf_event_result(const char *tag, int level,
1073 struct zfcp_adapter *adapter, 1120 struct zfcp_adapter *adapter,
1074 struct scsi_cmnd *scsi_cmnd, 1121 struct scsi_cmnd *scsi_cmnd,
@@ -1077,6 +1124,14 @@ void zfcp_scsi_dbf_event_result(const char *tag, int level,
1077 zfcp_scsi_dbf_event("rslt", tag, level, adapter, scsi_cmnd, fsf_req, 0); 1124 zfcp_scsi_dbf_event("rslt", tag, level, adapter, scsi_cmnd, fsf_req, 0);
1078} 1125}
1079 1126
1127/**
1128 * zfcp_scsi_dbf_event_abort - trace event for SCSI command abort
1129 * @tag: tag indicating success or failure of abort operation
1130 * @adapter: adapter thas has been used to issue SCSI command to be aborted
1131 * @scsi_cmnd: SCSI command to be aborted
1132 * @new_fsf_req: request containing abort (might be NULL)
1133 * @old_req_id: identifier of request containg SCSI command to be aborted
1134 */
1080void zfcp_scsi_dbf_event_abort(const char *tag, struct zfcp_adapter *adapter, 1135void zfcp_scsi_dbf_event_abort(const char *tag, struct zfcp_adapter *adapter,
1081 struct scsi_cmnd *scsi_cmnd, 1136 struct scsi_cmnd *scsi_cmnd,
1082 struct zfcp_fsf_req *new_fsf_req, 1137 struct zfcp_fsf_req *new_fsf_req,
@@ -1086,6 +1141,13 @@ void zfcp_scsi_dbf_event_abort(const char *tag, struct zfcp_adapter *adapter,
1086 old_req_id); 1141 old_req_id);
1087} 1142}
1088 1143
1144/**
1145 * zfcp_scsi_dbf_event_devreset - trace event for Logical Unit or Target Reset
1146 * @tag: tag indicating success or failure of reset operation
1147 * @flag: indicates type of reset (Target Reset, Logical Unit Reset)
1148 * @unit: unit that needs reset
1149 * @scsi_cmnd: SCSI command which caused this error recovery
1150 */
1089void zfcp_scsi_dbf_event_devreset(const char *tag, u8 flag, 1151void zfcp_scsi_dbf_event_devreset(const char *tag, u8 flag,
1090 struct zfcp_unit *unit, 1152 struct zfcp_unit *unit,
1091 struct scsi_cmnd *scsi_cmnd) 1153 struct scsi_cmnd *scsi_cmnd)