diff options
author | Martin Peschke <mp3@de.ibm.com> | 2008-03-27 09:22:00 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-04-07 13:19:04 -0400 |
commit | d79a83dbffe2e49e73f2903c350937faf2e0c2f1 (patch) | |
tree | e37ad0ed1fb790bd05c5c7678def7a78946ea2d7 /drivers/s390/scsi/zfcp_dbf.c | |
parent | 10223c60daf226ee2248b772892abc83cd875aa7 (diff) |
[SCSI] zfcp: Register new recovery trace.
This patch registers the new recovery trace with the s390 debug
feature.
Signed-off-by: Martin Peschke <mp3@de.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.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 | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/drivers/s390/scsi/zfcp_dbf.c b/drivers/s390/scsi/zfcp_dbf.c index 453343783990..e7712eb13eea 100644 --- a/drivers/s390/scsi/zfcp_dbf.c +++ b/drivers/s390/scsi/zfcp_dbf.c | |||
@@ -520,6 +520,36 @@ static struct debug_view zfcp_hba_dbf_view = { | |||
520 | NULL | 520 | NULL |
521 | }; | 521 | }; |
522 | 522 | ||
523 | static const char *zfcp_rec_dbf_tags[] = { | ||
524 | }; | ||
525 | |||
526 | static const char *zfcp_rec_dbf_ids[] = { | ||
527 | }; | ||
528 | |||
529 | static int zfcp_rec_dbf_view_format(debug_info_t *id, struct debug_view *view, | ||
530 | char *buf, const char *_rec) | ||
531 | { | ||
532 | struct zfcp_rec_dbf_record *r = (struct zfcp_rec_dbf_record *)_rec; | ||
533 | char *p = buf; | ||
534 | |||
535 | zfcp_dbf_outs(&p, "tag", zfcp_rec_dbf_tags[r->id]); | ||
536 | zfcp_dbf_outs(&p, "hint", zfcp_rec_dbf_ids[r->id2]); | ||
537 | zfcp_dbf_out(&p, "id", "%d", r->id2); | ||
538 | switch (r->id) { | ||
539 | } | ||
540 | sprintf(p, "\n"); | ||
541 | return (p - buf) + 1; | ||
542 | } | ||
543 | |||
544 | static struct debug_view zfcp_rec_dbf_view = { | ||
545 | "structured", | ||
546 | NULL, | ||
547 | &zfcp_dbf_view_header, | ||
548 | &zfcp_rec_dbf_view_format, | ||
549 | NULL, | ||
550 | NULL | ||
551 | }; | ||
552 | |||
523 | static void | 553 | static void |
524 | _zfcp_san_dbf_event_common_ct(const char *tag, struct zfcp_fsf_req *fsf_req, | 554 | _zfcp_san_dbf_event_common_ct(const char *tag, struct zfcp_fsf_req *fsf_req, |
525 | u32 s_id, u32 d_id, void *buffer, int buflen) | 555 | u32 s_id, u32 d_id, void *buffer, int buflen) |
@@ -934,6 +964,16 @@ int zfcp_adapter_debug_register(struct zfcp_adapter *adapter) | |||
934 | debug_register_view(adapter->erp_dbf, &debug_hex_ascii_view); | 964 | debug_register_view(adapter->erp_dbf, &debug_hex_ascii_view); |
935 | debug_set_level(adapter->erp_dbf, 3); | 965 | debug_set_level(adapter->erp_dbf, 3); |
936 | 966 | ||
967 | /* debug feature area which records recovery activity */ | ||
968 | sprintf(dbf_name, "zfcp_%s_rec", zfcp_get_busid_by_adapter(adapter)); | ||
969 | adapter->rec_dbf = debug_register(dbf_name, dbfsize, 1, | ||
970 | sizeof(struct zfcp_rec_dbf_record)); | ||
971 | if (!adapter->rec_dbf) | ||
972 | goto failed; | ||
973 | debug_register_view(adapter->rec_dbf, &debug_hex_ascii_view); | ||
974 | debug_register_view(adapter->rec_dbf, &zfcp_rec_dbf_view); | ||
975 | debug_set_level(adapter->rec_dbf, 3); | ||
976 | |||
937 | /* debug feature area which records HBA (FSF and QDIO) conditions */ | 977 | /* debug feature area which records HBA (FSF and QDIO) conditions */ |
938 | sprintf(dbf_name, "zfcp_%s_hba", zfcp_get_busid_by_adapter(adapter)); | 978 | sprintf(dbf_name, "zfcp_%s_hba", zfcp_get_busid_by_adapter(adapter)); |
939 | adapter->hba_dbf = debug_register(dbf_name, dbfsize, 1, | 979 | adapter->hba_dbf = debug_register(dbf_name, dbfsize, 1, |
@@ -981,10 +1021,12 @@ void zfcp_adapter_debug_unregister(struct zfcp_adapter *adapter) | |||
981 | debug_unregister(adapter->scsi_dbf); | 1021 | debug_unregister(adapter->scsi_dbf); |
982 | debug_unregister(adapter->san_dbf); | 1022 | debug_unregister(adapter->san_dbf); |
983 | debug_unregister(adapter->hba_dbf); | 1023 | debug_unregister(adapter->hba_dbf); |
1024 | debug_unregister(adapter->rec_dbf); | ||
984 | debug_unregister(adapter->erp_dbf); | 1025 | debug_unregister(adapter->erp_dbf); |
985 | adapter->scsi_dbf = NULL; | 1026 | adapter->scsi_dbf = NULL; |
986 | adapter->san_dbf = NULL; | 1027 | adapter->san_dbf = NULL; |
987 | adapter->hba_dbf = NULL; | 1028 | adapter->hba_dbf = NULL; |
1029 | adapter->rec_dbf = NULL; | ||
988 | adapter->erp_dbf = NULL; | 1030 | adapter->erp_dbf = NULL; |
989 | } | 1031 | } |
990 | 1032 | ||