diff options
author | Felix Beck <felix.beck@de.ibm.com> | 2010-07-16 09:37:42 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-07-28 10:48:56 -0400 |
commit | ef3eb71d8ba4fd9d48c5f9310bc9d90ca00323b4 (patch) | |
tree | 9903cbae6c03184687c51b4be926572913cda93f /drivers/s390/scsi/zfcp_dbf.c | |
parent | dcc18f48a2f1a44c5e8848f30d0cf53a8066c62a (diff) |
[SCSI] zfcp: Introduce experimental support for DIF/DIX
Introduce support for DIF/DIX in zfcp: Report the capabilities for the
Scsi_host, map the protection data when issuing I/O requests and
handle the new error codes. Also add the fsf data_direction field to
the hba trace, it is useful information for debugging in that area.
This is an EXPERIMENTAL feature for now.
Signed-off-by: Felix Beck <felix.beck@de.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/s390/scsi/zfcp_dbf.c')
-rw-r--r-- | drivers/s390/scsi/zfcp_dbf.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/s390/scsi/zfcp_dbf.c b/drivers/s390/scsi/zfcp_dbf.c index a08d33a96ec9..a86117b0d6e1 100644 --- a/drivers/s390/scsi/zfcp_dbf.c +++ b/drivers/s390/scsi/zfcp_dbf.c | |||
@@ -155,6 +155,8 @@ void _zfcp_dbf_hba_fsf_response(const char *tag2, int level, | |||
155 | if (scsi_cmnd) { | 155 | if (scsi_cmnd) { |
156 | response->u.fcp.cmnd = (unsigned long)scsi_cmnd; | 156 | response->u.fcp.cmnd = (unsigned long)scsi_cmnd; |
157 | response->u.fcp.serial = scsi_cmnd->serial_number; | 157 | response->u.fcp.serial = scsi_cmnd->serial_number; |
158 | response->u.fcp.data_dir = | ||
159 | qtcb->bottom.io.data_direction; | ||
158 | } | 160 | } |
159 | break; | 161 | break; |
160 | 162 | ||
@@ -326,6 +328,7 @@ static void zfcp_dbf_hba_view_response(char **p, | |||
326 | case FSF_QTCB_FCP_CMND: | 328 | case FSF_QTCB_FCP_CMND: |
327 | if (r->fsf_req_status & ZFCP_STATUS_FSFREQ_TASK_MANAGEMENT) | 329 | if (r->fsf_req_status & ZFCP_STATUS_FSFREQ_TASK_MANAGEMENT) |
328 | break; | 330 | break; |
331 | zfcp_dbf_out(p, "data_direction", "0x%04x", r->u.fcp.data_dir); | ||
329 | zfcp_dbf_out(p, "scsi_cmnd", "0x%0Lx", r->u.fcp.cmnd); | 332 | zfcp_dbf_out(p, "scsi_cmnd", "0x%0Lx", r->u.fcp.cmnd); |
330 | zfcp_dbf_out(p, "scsi_serial", "0x%016Lx", r->u.fcp.serial); | 333 | zfcp_dbf_out(p, "scsi_serial", "0x%016Lx", r->u.fcp.serial); |
331 | *p += sprintf(*p, "\n"); | 334 | *p += sprintf(*p, "\n"); |