diff options
author | Christof Schmitt <christof.schmitt@de.ibm.com> | 2008-12-19 10:57:01 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-12-29 12:38:28 -0500 |
commit | 39eb7e9aca2a582330ddb6f1167272268e6b3965 (patch) | |
tree | 59045a1bdcb5d48286f244dc700482495973a018 /drivers/s390/scsi/zfcp_dbf.c | |
parent | b225cf9b8040849e16add4da8e84a72a3548ada8 (diff) |
[SCSI] zfcp: Add support for unchained FSF requests
Add the support to send CT and ELS requests as unchained FSF requests. This is
required for older hardware and was somehow omitted during the cleanup of the
FSF layer. The req_count and resp_count attributes are unused, so remove them
instead of adding a special case for setting them. Also add debug data and a
warning, when the ct request hits a limit.
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Acked-by: Martin Petermann <martin@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/s390/scsi/zfcp_dbf.c')
-rw-r--r-- | drivers/s390/scsi/zfcp_dbf.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/s390/scsi/zfcp_dbf.c b/drivers/s390/scsi/zfcp_dbf.c index bf691fbc4d29..150bd5390b1d 100644 --- a/drivers/s390/scsi/zfcp_dbf.c +++ b/drivers/s390/scsi/zfcp_dbf.c | |||
@@ -936,6 +936,7 @@ void zfcp_san_dbf_event_ct_response(struct zfcp_fsf_req *fsf_req) | |||
936 | rct->reason_code = hdr->reason_code; | 936 | rct->reason_code = hdr->reason_code; |
937 | rct->expl = hdr->reason_code_expl; | 937 | rct->expl = hdr->reason_code_expl; |
938 | rct->vendor_unique = hdr->vendor_unique; | 938 | rct->vendor_unique = hdr->vendor_unique; |
939 | rct->max_res_size = hdr->max_res_size; | ||
939 | rct->len = min((int)ct->resp->length - (int)sizeof(struct ct_hdr), | 940 | rct->len = min((int)ct->resp->length - (int)sizeof(struct ct_hdr), |
940 | ZFCP_DBF_SAN_MAX_PAYLOAD); | 941 | ZFCP_DBF_SAN_MAX_PAYLOAD); |
941 | debug_event(adapter->san_dbf, level, r, sizeof(*r)); | 942 | debug_event(adapter->san_dbf, level, r, sizeof(*r)); |
@@ -1043,6 +1044,7 @@ static int zfcp_san_dbf_view_format(debug_info_t *id, struct debug_view *view, | |||
1043 | zfcp_dbf_out(&p, "reason_code", "0x%02x", ct->reason_code); | 1044 | zfcp_dbf_out(&p, "reason_code", "0x%02x", ct->reason_code); |
1044 | zfcp_dbf_out(&p, "reason_code_expl", "0x%02x", ct->expl); | 1045 | zfcp_dbf_out(&p, "reason_code_expl", "0x%02x", ct->expl); |
1045 | zfcp_dbf_out(&p, "vendor_unique", "0x%02x", ct->vendor_unique); | 1046 | zfcp_dbf_out(&p, "vendor_unique", "0x%02x", ct->vendor_unique); |
1047 | zfcp_dbf_out(&p, "max_res_size", "0x%04x", ct->max_res_size); | ||
1046 | } else if (strncmp(r->tag, "oels", ZFCP_DBF_TAG_SIZE) == 0 || | 1048 | } else if (strncmp(r->tag, "oels", ZFCP_DBF_TAG_SIZE) == 0 || |
1047 | strncmp(r->tag, "rels", ZFCP_DBF_TAG_SIZE) == 0 || | 1049 | strncmp(r->tag, "rels", ZFCP_DBF_TAG_SIZE) == 0 || |
1048 | strncmp(r->tag, "iels", ZFCP_DBF_TAG_SIZE) == 0) { | 1050 | strncmp(r->tag, "iels", ZFCP_DBF_TAG_SIZE) == 0) { |