aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390
diff options
context:
space:
mode:
authorSwen Schillig <swen@vnet.ibm.com>2009-03-02 07:09:04 -0500
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-03-12 13:58:20 -0400
commit5ffd51a5e495a2a002efd523aef0001912b080bd (patch)
tree422e72fe3674c230a9d8e5cebe71f902ac7f0bec /drivers/s390
parentcf13c08223148e525d28f4a740f2e73518ec6abe (diff)
[SCSI] zfcp: replace current ERP logging with a more convenient version
The current number based id ERP logging is replaced by a string based tag version. The benefit is an easier location of the code in question and the removal of the lengthy array referencing the individual messages. The string (7 bytes) based version does not use more space since those bytes were "used" anyway due to the alignment of the structure. The encoding of the 7 byte string is as follows [0-1] = filename [2-5] = task/function [6] = section Due to the character of this string (fixed length) a string termination is not required here. Signed-off-by: Swen Schillig <swen@vnet.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')
-rw-r--r--drivers/s390/scsi/zfcp_aux.c3
-rw-r--r--drivers/s390/scsi/zfcp_ccw.c18
-rw-r--r--drivers/s390/scsi/zfcp_dbf.c188
-rw-r--r--drivers/s390/scsi/zfcp_dbf.h3
-rw-r--r--drivers/s390/scsi/zfcp_erp.c137
-rw-r--r--drivers/s390/scsi/zfcp_ext.h55
-rw-r--r--drivers/s390/scsi/zfcp_fc.c14
-rw-r--r--drivers/s390/scsi/zfcp_fsf.c131
-rw-r--r--drivers/s390/scsi/zfcp_qdio.c6
-rw-r--r--drivers/s390/scsi/zfcp_scsi.c4
-rw-r--r--drivers/s390/scsi/zfcp_sysfs.c12
11 files changed, 215 insertions, 356 deletions
diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c
index 1e16ab58b242..69a31187e54d 100644
--- a/drivers/s390/scsi/zfcp_aux.c
+++ b/drivers/s390/scsi/zfcp_aux.c
@@ -421,7 +421,8 @@ int zfcp_status_read_refill(struct zfcp_adapter *adapter)
421 while (atomic_read(&adapter->stat_miss) > 0) 421 while (atomic_read(&adapter->stat_miss) > 0)
422 if (zfcp_fsf_status_read(adapter)) { 422 if (zfcp_fsf_status_read(adapter)) {
423 if (atomic_read(&adapter->stat_miss) >= 16) { 423 if (atomic_read(&adapter->stat_miss) >= 16) {
424 zfcp_erp_adapter_reopen(adapter, 0, 103, NULL); 424 zfcp_erp_adapter_reopen(adapter, 0, "axsref1",
425 NULL);
425 return 1; 426 return 1;
426 } 427 }
427 break; 428 break;
diff --git a/drivers/s390/scsi/zfcp_ccw.c b/drivers/s390/scsi/zfcp_ccw.c
index 683ac4ed5e56..3aeef289fe7c 100644
--- a/drivers/s390/scsi/zfcp_ccw.c
+++ b/drivers/s390/scsi/zfcp_ccw.c
@@ -109,10 +109,10 @@ static int zfcp_ccw_set_online(struct ccw_device *ccw_device)
109 BUG_ON(!zfcp_reqlist_isempty(adapter)); 109 BUG_ON(!zfcp_reqlist_isempty(adapter));
110 adapter->req_no = 0; 110 adapter->req_no = 0;
111 111
112 zfcp_erp_modify_adapter_status(adapter, 10, NULL, 112 zfcp_erp_modify_adapter_status(adapter, "ccsonl1", NULL,
113 ZFCP_STATUS_COMMON_RUNNING, ZFCP_SET); 113 ZFCP_STATUS_COMMON_RUNNING, ZFCP_SET);
114 zfcp_erp_adapter_reopen(adapter, ZFCP_STATUS_COMMON_ERP_FAILED, 85, 114 zfcp_erp_adapter_reopen(adapter, ZFCP_STATUS_COMMON_ERP_FAILED,
115 NULL); 115 "ccsonl2", NULL);
116 zfcp_erp_wait(adapter); 116 zfcp_erp_wait(adapter);
117 up(&zfcp_data.config_sema); 117 up(&zfcp_data.config_sema);
118 flush_work(&adapter->scan_work); 118 flush_work(&adapter->scan_work);
@@ -136,7 +136,7 @@ static int zfcp_ccw_set_offline(struct ccw_device *ccw_device)
136 136
137 down(&zfcp_data.config_sema); 137 down(&zfcp_data.config_sema);
138 adapter = dev_get_drvdata(&ccw_device->dev); 138 adapter = dev_get_drvdata(&ccw_device->dev);
139 zfcp_erp_adapter_shutdown(adapter, 0, 86, NULL); 139 zfcp_erp_adapter_shutdown(adapter, 0, "ccsoff1", NULL);
140 zfcp_erp_wait(adapter); 140 zfcp_erp_wait(adapter);
141 zfcp_erp_thread_kill(adapter); 141 zfcp_erp_thread_kill(adapter);
142 up(&zfcp_data.config_sema); 142 up(&zfcp_data.config_sema);
@@ -159,21 +159,21 @@ static int zfcp_ccw_notify(struct ccw_device *ccw_device, int event)
159 case CIO_GONE: 159 case CIO_GONE:
160 dev_warn(&adapter->ccw_device->dev, 160 dev_warn(&adapter->ccw_device->dev,
161 "The FCP device has been detached\n"); 161 "The FCP device has been detached\n");
162 zfcp_erp_adapter_shutdown(adapter, 0, 87, NULL); 162 zfcp_erp_adapter_shutdown(adapter, 0, "ccnoti1", NULL);
163 break; 163 break;
164 case CIO_NO_PATH: 164 case CIO_NO_PATH:
165 dev_warn(&adapter->ccw_device->dev, 165 dev_warn(&adapter->ccw_device->dev,
166 "The CHPID for the FCP device is offline\n"); 166 "The CHPID for the FCP device is offline\n");
167 zfcp_erp_adapter_shutdown(adapter, 0, 88, NULL); 167 zfcp_erp_adapter_shutdown(adapter, 0, "ccnoti2", NULL);
168 break; 168 break;
169 case CIO_OPER: 169 case CIO_OPER:
170 dev_info(&adapter->ccw_device->dev, 170 dev_info(&adapter->ccw_device->dev,
171 "The FCP device is operational again\n"); 171 "The FCP device is operational again\n");
172 zfcp_erp_modify_adapter_status(adapter, 11, NULL, 172 zfcp_erp_modify_adapter_status(adapter, "ccnoti3", NULL,
173 ZFCP_STATUS_COMMON_RUNNING, 173 ZFCP_STATUS_COMMON_RUNNING,
174 ZFCP_SET); 174 ZFCP_SET);
175 zfcp_erp_adapter_reopen(adapter, ZFCP_STATUS_COMMON_ERP_FAILED, 175 zfcp_erp_adapter_reopen(adapter, ZFCP_STATUS_COMMON_ERP_FAILED,
176 89, NULL); 176 "ccnoti4", NULL);
177 break; 177 break;
178 } 178 }
179 return 1; 179 return 1;
@@ -189,7 +189,7 @@ static void zfcp_ccw_shutdown(struct ccw_device *cdev)
189 189
190 down(&zfcp_data.config_sema); 190 down(&zfcp_data.config_sema);
191 adapter = dev_get_drvdata(&cdev->dev); 191 adapter = dev_get_drvdata(&cdev->dev);
192 zfcp_erp_adapter_shutdown(adapter, 0, 90, NULL); 192 zfcp_erp_adapter_shutdown(adapter, 0, "ccshut1", NULL);
193 zfcp_erp_wait(adapter); 193 zfcp_erp_wait(adapter);
194 up(&zfcp_data.config_sema); 194 up(&zfcp_data.config_sema);
195} 195}
diff --git a/drivers/s390/scsi/zfcp_dbf.c b/drivers/s390/scsi/zfcp_dbf.c
index ab843f23d428..0a1a5dd8d018 100644
--- a/drivers/s390/scsi/zfcp_dbf.c
+++ b/drivers/s390/scsi/zfcp_dbf.c
@@ -490,172 +490,17 @@ static const char *zfcp_rec_dbf_tags[] = {
490 [ZFCP_REC_DBF_ID_ACTION] = "action", 490 [ZFCP_REC_DBF_ID_ACTION] = "action",
491}; 491};
492 492
493static const char *zfcp_rec_dbf_ids[] = {
494 [1] = "new",
495 [2] = "ready",
496 [3] = "kill",
497 [4] = "down sleep",
498 [5] = "down wakeup",
499 [6] = "down sleep ecd",
500 [7] = "down wakeup ecd",
501 [8] = "down sleep epd",
502 [9] = "down wakeup epd",
503 [10] = "online",
504 [11] = "operational",
505 [12] = "scsi slave destroy",
506 [13] = "propagate failed adapter",
507 [14] = "propagate failed port",
508 [15] = "block adapter",
509 [16] = "unblock adapter",
510 [17] = "block port",
511 [18] = "unblock port",
512 [19] = "block unit",
513 [20] = "unblock unit",
514 [21] = "unit recovery failed",
515 [22] = "port recovery failed",
516 [23] = "adapter recovery failed",
517 [24] = "qdio queues down",
518 [25] = "p2p failed",
519 [26] = "nameserver lookup failed",
520 [27] = "nameserver port failed",
521 [28] = "link up",
522 [29] = "link down",
523 [30] = "link up status read",
524 [31] = "open port failed",
525 [32] = "",
526 [33] = "close port",
527 [34] = "open unit failed",
528 [35] = "exclusive open unit failed",
529 [36] = "shared open unit failed",
530 [37] = "link down",
531 [38] = "link down status read no link",
532 [39] = "link down status read fdisc login",
533 [40] = "link down status read firmware update",
534 [41] = "link down status read unknown reason",
535 [42] = "link down ecd incomplete",
536 [43] = "link down epd incomplete",
537 [44] = "sysfs adapter recovery",
538 [45] = "sysfs port recovery",
539 [46] = "sysfs unit recovery",
540 [47] = "port boxed abort",
541 [48] = "unit boxed abort",
542 [49] = "port boxed ct",
543 [50] = "port boxed close physical",
544 [51] = "port boxed open unit",
545 [52] = "port boxed close unit",
546 [53] = "port boxed fcp",
547 [54] = "unit boxed fcp",
548 [55] = "port access denied",
549 [56] = "",
550 [57] = "",
551 [58] = "",
552 [59] = "unit access denied",
553 [60] = "shared unit access denied open unit",
554 [61] = "",
555 [62] = "request timeout",
556 [63] = "adisc link test reject or timeout",
557 [64] = "adisc link test d_id changed",
558 [65] = "adisc link test failed",
559 [66] = "recovery out of memory",
560 [67] = "adapter recovery repeated after state change",
561 [68] = "port recovery repeated after state change",
562 [69] = "unit recovery repeated after state change",
563 [70] = "port recovery follow-up after successful adapter recovery",
564 [71] = "adapter recovery escalation after failed adapter recovery",
565 [72] = "port recovery follow-up after successful physical port "
566 "recovery",
567 [73] = "adapter recovery escalation after failed physical port "
568 "recovery",
569 [74] = "unit recovery follow-up after successful port recovery",
570 [75] = "physical port recovery escalation after failed port "
571 "recovery",
572 [76] = "port recovery escalation after failed unit recovery",
573 [77] = "",
574 [78] = "duplicate request id",
575 [79] = "link down",
576 [80] = "exclusive read-only unit access unsupported",
577 [81] = "shared read-write unit access unsupported",
578 [82] = "incoming rscn",
579 [83] = "incoming wwpn",
580 [84] = "wka port handle not valid close port",
581 [85] = "online",
582 [86] = "offline",
583 [87] = "ccw device gone",
584 [88] = "ccw device no path",
585 [89] = "ccw device operational",
586 [90] = "ccw device shutdown",
587 [91] = "sysfs port addition",
588 [92] = "sysfs port removal",
589 [93] = "sysfs adapter recovery",
590 [94] = "sysfs unit addition",
591 [95] = "sysfs unit removal",
592 [96] = "sysfs port recovery",
593 [97] = "sysfs unit recovery",
594 [98] = "sequence number mismatch",
595 [99] = "link up",
596 [100] = "error state",
597 [101] = "status read physical port closed",
598 [102] = "link up status read",
599 [103] = "too many failed status read buffers",
600 [104] = "port handle not valid abort",
601 [105] = "lun handle not valid abort",
602 [106] = "port handle not valid ct",
603 [107] = "port handle not valid close port",
604 [108] = "port handle not valid close physical port",
605 [109] = "port handle not valid open unit",
606 [110] = "port handle not valid close unit",
607 [111] = "lun handle not valid close unit",
608 [112] = "port handle not valid fcp",
609 [113] = "lun handle not valid fcp",
610 [114] = "handle mismatch fcp",
611 [115] = "lun not valid fcp",
612 [116] = "qdio send failed",
613 [117] = "version mismatch",
614 [118] = "incompatible qtcb type",
615 [119] = "unknown protocol status",
616 [120] = "unknown fsf command",
617 [121] = "no recommendation for status qualifier",
618 [122] = "",
619 [123] = "fc service class not supported",
620 [124] = "",
621 [125] = "need newer zfcp",
622 [126] = "need newer microcode",
623 [127] = "arbitrated loop not supported",
624 [128] = "",
625 [129] = "qtcb size mismatch",
626 [130] = "unknown fsf status ecd",
627 [131] = "fcp request too big",
628 [132] = "",
629 [133] = "data direction not valid fcp",
630 [134] = "command length not valid fcp",
631 [135] = "status read act update",
632 [136] = "status read cfdc update",
633 [137] = "hbaapi port open",
634 [138] = "hbaapi unit open",
635 [139] = "hbaapi unit shutdown",
636 [140] = "qdio error outbound",
637 [141] = "scsi host reset",
638 [142] = "dismissing fsf request for recovery action",
639 [143] = "recovery action timed out",
640 [144] = "recovery action gone",
641 [145] = "recovery action being processed",
642 [146] = "recovery action ready for next step",
643 [147] = "qdio error inbound",
644 [148] = "nameserver needed for port scan",
645 [149] = "port scan",
646 [150] = "ptp attach",
647 [151] = "port validation failed",
648};
649
650static int zfcp_rec_dbf_view_format(debug_info_t *id, struct debug_view *view, 493static int zfcp_rec_dbf_view_format(debug_info_t *id, struct debug_view *view,
651 char *buf, const char *_rec) 494 char *buf, const char *_rec)
652{ 495{
653 struct zfcp_rec_dbf_record *r = (struct zfcp_rec_dbf_record *)_rec; 496 struct zfcp_rec_dbf_record *r = (struct zfcp_rec_dbf_record *)_rec;
654 char *p = buf; 497 char *p = buf;
498 char hint[ZFCP_DBF_ID_SIZE + 1];
655 499
500 memcpy(hint, r->id2, ZFCP_DBF_ID_SIZE);
501 hint[ZFCP_DBF_ID_SIZE] = 0;
656 zfcp_dbf_outs(&p, "tag", zfcp_rec_dbf_tags[r->id]); 502 zfcp_dbf_outs(&p, "tag", zfcp_rec_dbf_tags[r->id]);
657 zfcp_dbf_outs(&p, "hint", zfcp_rec_dbf_ids[r->id2]); 503 zfcp_dbf_outs(&p, "hint", hint);
658 zfcp_dbf_out(&p, "id", "%d", r->id2);
659 switch (r->id) { 504 switch (r->id) {
660 case ZFCP_REC_DBF_ID_THREAD: 505 case ZFCP_REC_DBF_ID_THREAD:
661 zfcp_dbf_out(&p, "total", "%d", r->u.thread.total); 506 zfcp_dbf_out(&p, "total", "%d", r->u.thread.total);
@@ -707,7 +552,7 @@ static struct debug_view zfcp_rec_dbf_view = {
707 * @adapter: adapter 552 * @adapter: adapter
708 * This function assumes that the caller is holding erp_lock. 553 * This function assumes that the caller is holding erp_lock.
709 */ 554 */
710void zfcp_rec_dbf_event_thread(u8 id2, struct zfcp_adapter *adapter) 555void zfcp_rec_dbf_event_thread(char *id2, struct zfcp_adapter *adapter)
711{ 556{
712 struct zfcp_rec_dbf_record *r = &adapter->rec_dbf_buf; 557 struct zfcp_rec_dbf_record *r = &adapter->rec_dbf_buf;
713 unsigned long flags = 0; 558 unsigned long flags = 0;
@@ -723,7 +568,7 @@ void zfcp_rec_dbf_event_thread(u8 id2, struct zfcp_adapter *adapter)
723 spin_lock_irqsave(&adapter->rec_dbf_lock, flags); 568 spin_lock_irqsave(&adapter->rec_dbf_lock, flags);
724 memset(r, 0, sizeof(*r)); 569 memset(r, 0, sizeof(*r));
725 r->id = ZFCP_REC_DBF_ID_THREAD; 570 r->id = ZFCP_REC_DBF_ID_THREAD;
726 r->id2 = id2; 571 memcpy(r->id2, id2, ZFCP_DBF_ID_SIZE);
727 r->u.thread.total = total; 572 r->u.thread.total = total;
728 r->u.thread.ready = ready; 573 r->u.thread.ready = ready;
729 r->u.thread.running = running; 574 r->u.thread.running = running;
@@ -737,7 +582,7 @@ void zfcp_rec_dbf_event_thread(u8 id2, struct zfcp_adapter *adapter)
737 * @adapter: adapter 582 * @adapter: adapter
738 * This function assumes that the caller does not hold erp_lock. 583 * This function assumes that the caller does not hold erp_lock.
739 */ 584 */
740void zfcp_rec_dbf_event_thread_lock(u8 id2, struct zfcp_adapter *adapter) 585void zfcp_rec_dbf_event_thread_lock(char *id2, struct zfcp_adapter *adapter)
741{ 586{
742 unsigned long flags; 587 unsigned long flags;
743 588
@@ -746,7 +591,7 @@ void zfcp_rec_dbf_event_thread_lock(u8 id2, struct zfcp_adapter *adapter)
746 read_unlock_irqrestore(&adapter->erp_lock, flags); 591 read_unlock_irqrestore(&adapter->erp_lock, flags);
747} 592}
748 593
749static void zfcp_rec_dbf_event_target(u8 id2, void *ref, 594static void zfcp_rec_dbf_event_target(char *id2, void *ref,
750 struct zfcp_adapter *adapter, 595 struct zfcp_adapter *adapter,
751 atomic_t *status, atomic_t *erp_count, 596 atomic_t *status, atomic_t *erp_count,
752 u64 wwpn, u32 d_id, u64 fcp_lun) 597 u64 wwpn, u32 d_id, u64 fcp_lun)
@@ -757,7 +602,7 @@ static void zfcp_rec_dbf_event_target(u8 id2, void *ref,
757 spin_lock_irqsave(&adapter->rec_dbf_lock, flags); 602 spin_lock_irqsave(&adapter->rec_dbf_lock, flags);
758 memset(r, 0, sizeof(*r)); 603 memset(r, 0, sizeof(*r));
759 r->id = ZFCP_REC_DBF_ID_TARGET; 604 r->id = ZFCP_REC_DBF_ID_TARGET;
760 r->id2 = id2; 605 memcpy(r->id2, id2, ZFCP_DBF_ID_SIZE);
761 r->u.target.ref = (unsigned long)ref; 606 r->u.target.ref = (unsigned long)ref;
762 r->u.target.status = atomic_read(status); 607 r->u.target.status = atomic_read(status);
763 r->u.target.wwpn = wwpn; 608 r->u.target.wwpn = wwpn;
@@ -774,7 +619,8 @@ static void zfcp_rec_dbf_event_target(u8 id2, void *ref,
774 * @ref: additional reference (e.g. request) 619 * @ref: additional reference (e.g. request)
775 * @adapter: adapter 620 * @adapter: adapter
776 */ 621 */
777void zfcp_rec_dbf_event_adapter(u8 id, void *ref, struct zfcp_adapter *adapter) 622void zfcp_rec_dbf_event_adapter(char *id, void *ref,
623 struct zfcp_adapter *adapter)
778{ 624{
779 zfcp_rec_dbf_event_target(id, ref, adapter, &adapter->status, 625 zfcp_rec_dbf_event_target(id, ref, adapter, &adapter->status,
780 &adapter->erp_counter, 0, 0, 0); 626 &adapter->erp_counter, 0, 0, 0);
@@ -786,7 +632,7 @@ void zfcp_rec_dbf_event_adapter(u8 id, void *ref, struct zfcp_adapter *adapter)
786 * @ref: additional reference (e.g. request) 632 * @ref: additional reference (e.g. request)
787 * @port: port 633 * @port: port
788 */ 634 */
789void zfcp_rec_dbf_event_port(u8 id, void *ref, struct zfcp_port *port) 635void zfcp_rec_dbf_event_port(char *id, void *ref, struct zfcp_port *port)
790{ 636{
791 struct zfcp_adapter *adapter = port->adapter; 637 struct zfcp_adapter *adapter = port->adapter;
792 638
@@ -801,7 +647,7 @@ void zfcp_rec_dbf_event_port(u8 id, void *ref, struct zfcp_port *port)
801 * @ref: additional reference (e.g. request) 647 * @ref: additional reference (e.g. request)
802 * @unit: unit 648 * @unit: unit
803 */ 649 */
804void zfcp_rec_dbf_event_unit(u8 id, void *ref, struct zfcp_unit *unit) 650void zfcp_rec_dbf_event_unit(char *id, void *ref, struct zfcp_unit *unit)
805{ 651{
806 struct zfcp_port *port = unit->port; 652 struct zfcp_port *port = unit->port;
807 struct zfcp_adapter *adapter = port->adapter; 653 struct zfcp_adapter *adapter = port->adapter;
@@ -822,7 +668,7 @@ void zfcp_rec_dbf_event_unit(u8 id, void *ref, struct zfcp_unit *unit)
822 * @port: port 668 * @port: port
823 * @unit: unit 669 * @unit: unit
824 */ 670 */
825void zfcp_rec_dbf_event_trigger(u8 id2, void *ref, u8 want, u8 need, 671void zfcp_rec_dbf_event_trigger(char *id2, void *ref, u8 want, u8 need,
826 void *action, struct zfcp_adapter *adapter, 672 void *action, struct zfcp_adapter *adapter,
827 struct zfcp_port *port, struct zfcp_unit *unit) 673 struct zfcp_port *port, struct zfcp_unit *unit)
828{ 674{
@@ -832,7 +678,7 @@ void zfcp_rec_dbf_event_trigger(u8 id2, void *ref, u8 want, u8 need,
832 spin_lock_irqsave(&adapter->rec_dbf_lock, flags); 678 spin_lock_irqsave(&adapter->rec_dbf_lock, flags);
833 memset(r, 0, sizeof(*r)); 679 memset(r, 0, sizeof(*r));
834 r->id = ZFCP_REC_DBF_ID_TRIGGER; 680 r->id = ZFCP_REC_DBF_ID_TRIGGER;
835 r->id2 = id2; 681 memcpy(r->id2, id2, ZFCP_DBF_ID_SIZE);
836 r->u.trigger.ref = (unsigned long)ref; 682 r->u.trigger.ref = (unsigned long)ref;
837 r->u.trigger.want = want; 683 r->u.trigger.want = want;
838 r->u.trigger.need = need; 684 r->u.trigger.need = need;
@@ -855,7 +701,7 @@ void zfcp_rec_dbf_event_trigger(u8 id2, void *ref, u8 want, u8 need,
855 * @id2: identifier 701 * @id2: identifier
856 * @erp_action: error recovery action struct pointer 702 * @erp_action: error recovery action struct pointer
857 */ 703 */
858void zfcp_rec_dbf_event_action(u8 id2, struct zfcp_erp_action *erp_action) 704void zfcp_rec_dbf_event_action(char *id2, struct zfcp_erp_action *erp_action)
859{ 705{
860 struct zfcp_adapter *adapter = erp_action->adapter; 706 struct zfcp_adapter *adapter = erp_action->adapter;
861 struct zfcp_rec_dbf_record *r = &adapter->rec_dbf_buf; 707 struct zfcp_rec_dbf_record *r = &adapter->rec_dbf_buf;
@@ -864,7 +710,7 @@ void zfcp_rec_dbf_event_action(u8 id2, struct zfcp_erp_action *erp_action)
864 spin_lock_irqsave(&adapter->rec_dbf_lock, flags); 710 spin_lock_irqsave(&adapter->rec_dbf_lock, flags);
865 memset(r, 0, sizeof(*r)); 711 memset(r, 0, sizeof(*r));
866 r->id = ZFCP_REC_DBF_ID_ACTION; 712 r->id = ZFCP_REC_DBF_ID_ACTION;
867 r->id2 = id2; 713 memcpy(r->id2, id2, ZFCP_DBF_ID_SIZE);
868 r->u.action.action = (unsigned long)erp_action; 714 r->u.action.action = (unsigned long)erp_action;
869 r->u.action.status = erp_action->status; 715 r->u.action.status = erp_action->status;
870 r->u.action.step = erp_action->step; 716 r->u.action.step = erp_action->step;
diff --git a/drivers/s390/scsi/zfcp_dbf.h b/drivers/s390/scsi/zfcp_dbf.h
index 74998ff88e57..a573f7344dd6 100644
--- a/drivers/s390/scsi/zfcp_dbf.h
+++ b/drivers/s390/scsi/zfcp_dbf.h
@@ -25,6 +25,7 @@
25#include "zfcp_fsf.h" 25#include "zfcp_fsf.h"
26 26
27#define ZFCP_DBF_TAG_SIZE 4 27#define ZFCP_DBF_TAG_SIZE 4
28#define ZFCP_DBF_ID_SIZE 7
28 29
29struct zfcp_dbf_dump { 30struct zfcp_dbf_dump {
30 u8 tag[ZFCP_DBF_TAG_SIZE]; 31 u8 tag[ZFCP_DBF_TAG_SIZE];
@@ -70,7 +71,7 @@ struct zfcp_rec_dbf_record_action {
70 71
71struct zfcp_rec_dbf_record { 72struct zfcp_rec_dbf_record {
72 u8 id; 73 u8 id;
73 u8 id2; 74 char id2[7];
74 union { 75 union {
75 struct zfcp_rec_dbf_record_action action; 76 struct zfcp_rec_dbf_record_action action;
76 struct zfcp_rec_dbf_record_thread thread; 77 struct zfcp_rec_dbf_record_thread thread;
diff --git a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c
index 28c7185f24bc..65addf6a91ec 100644
--- a/drivers/s390/scsi/zfcp_erp.c
+++ b/drivers/s390/scsi/zfcp_erp.c
@@ -55,7 +55,7 @@ enum zfcp_erp_act_result {
55 55
56static void zfcp_erp_adapter_block(struct zfcp_adapter *adapter, int mask) 56static void zfcp_erp_adapter_block(struct zfcp_adapter *adapter, int mask)
57{ 57{
58 zfcp_erp_modify_adapter_status(adapter, 15, NULL, 58 zfcp_erp_modify_adapter_status(adapter, "erablk1", NULL,
59 ZFCP_STATUS_COMMON_UNBLOCKED | mask, 59 ZFCP_STATUS_COMMON_UNBLOCKED | mask,
60 ZFCP_CLEAR); 60 ZFCP_CLEAR);
61} 61}
@@ -75,9 +75,9 @@ static void zfcp_erp_action_ready(struct zfcp_erp_action *act)
75 struct zfcp_adapter *adapter = act->adapter; 75 struct zfcp_adapter *adapter = act->adapter;
76 76
77 list_move(&act->list, &act->adapter->erp_ready_head); 77 list_move(&act->list, &act->adapter->erp_ready_head);
78 zfcp_rec_dbf_event_action(146, act); 78 zfcp_rec_dbf_event_action("erardy1", act);
79 up(&adapter->erp_ready_sem); 79 up(&adapter->erp_ready_sem);
80 zfcp_rec_dbf_event_thread(2, adapter); 80 zfcp_rec_dbf_event_thread("erardy2", adapter);
81} 81}
82 82
83static void zfcp_erp_action_dismiss(struct zfcp_erp_action *act) 83static void zfcp_erp_action_dismiss(struct zfcp_erp_action *act)
@@ -208,7 +208,7 @@ static struct zfcp_erp_action *zfcp_erp_setup_act(int need,
208 208
209static int zfcp_erp_action_enqueue(int want, struct zfcp_adapter *adapter, 209static int zfcp_erp_action_enqueue(int want, struct zfcp_adapter *adapter,
210 struct zfcp_port *port, 210 struct zfcp_port *port,
211 struct zfcp_unit *unit, u8 id, void *ref) 211 struct zfcp_unit *unit, char *id, void *ref)
212{ 212{
213 int retval = 1, need; 213 int retval = 1, need;
214 struct zfcp_erp_action *act = NULL; 214 struct zfcp_erp_action *act = NULL;
@@ -228,7 +228,7 @@ static int zfcp_erp_action_enqueue(int want, struct zfcp_adapter *adapter,
228 ++adapter->erp_total_count; 228 ++adapter->erp_total_count;
229 list_add_tail(&act->list, &adapter->erp_ready_head); 229 list_add_tail(&act->list, &adapter->erp_ready_head);
230 up(&adapter->erp_ready_sem); 230 up(&adapter->erp_ready_sem);
231 zfcp_rec_dbf_event_thread(1, adapter); 231 zfcp_rec_dbf_event_thread("eracte1", adapter);
232 retval = 0; 232 retval = 0;
233 out: 233 out:
234 zfcp_rec_dbf_event_trigger(id, ref, want, need, act, 234 zfcp_rec_dbf_event_trigger(id, ref, want, need, act,
@@ -237,13 +237,13 @@ static int zfcp_erp_action_enqueue(int want, struct zfcp_adapter *adapter,
237} 237}
238 238
239static int _zfcp_erp_adapter_reopen(struct zfcp_adapter *adapter, 239static int _zfcp_erp_adapter_reopen(struct zfcp_adapter *adapter,
240 int clear_mask, u8 id, void *ref) 240 int clear_mask, char *id, void *ref)
241{ 241{
242 zfcp_erp_adapter_block(adapter, clear_mask); 242 zfcp_erp_adapter_block(adapter, clear_mask);
243 243
244 /* ensure propagation of failed status to new devices */ 244 /* ensure propagation of failed status to new devices */
245 if (atomic_read(&adapter->status) & ZFCP_STATUS_COMMON_ERP_FAILED) { 245 if (atomic_read(&adapter->status) & ZFCP_STATUS_COMMON_ERP_FAILED) {
246 zfcp_erp_adapter_failed(adapter, 13, NULL); 246 zfcp_erp_adapter_failed(adapter, "erareo1", NULL);
247 return -EIO; 247 return -EIO;
248 } 248 }
249 return zfcp_erp_action_enqueue(ZFCP_ERP_ACTION_REOPEN_ADAPTER, 249 return zfcp_erp_action_enqueue(ZFCP_ERP_ACTION_REOPEN_ADAPTER,
@@ -258,7 +258,7 @@ static int _zfcp_erp_adapter_reopen(struct zfcp_adapter *adapter,
258 * @ref: Reference for debug trace event. 258 * @ref: Reference for debug trace event.
259 */ 259 */
260void zfcp_erp_adapter_reopen(struct zfcp_adapter *adapter, int clear, 260void zfcp_erp_adapter_reopen(struct zfcp_adapter *adapter, int clear,
261 u8 id, void *ref) 261 char *id, void *ref)
262{ 262{
263 unsigned long flags; 263 unsigned long flags;
264 264
@@ -277,7 +277,7 @@ void zfcp_erp_adapter_reopen(struct zfcp_adapter *adapter, int clear,
277 * @ref: Reference for debug trace event. 277 * @ref: Reference for debug trace event.
278 */ 278 */
279void zfcp_erp_adapter_shutdown(struct zfcp_adapter *adapter, int clear, 279void zfcp_erp_adapter_shutdown(struct zfcp_adapter *adapter, int clear,
280 u8 id, void *ref) 280 char *id, void *ref)
281{ 281{
282 int flags = ZFCP_STATUS_COMMON_RUNNING | ZFCP_STATUS_COMMON_ERP_FAILED; 282 int flags = ZFCP_STATUS_COMMON_RUNNING | ZFCP_STATUS_COMMON_ERP_FAILED;
283 zfcp_erp_adapter_reopen(adapter, clear | flags, id, ref); 283 zfcp_erp_adapter_reopen(adapter, clear | flags, id, ref);
@@ -290,7 +290,8 @@ void zfcp_erp_adapter_shutdown(struct zfcp_adapter *adapter, int clear,
290 * @id: Id for debug trace event. 290 * @id: Id for debug trace event.
291 * @ref: Reference for debug trace event. 291 * @ref: Reference for debug trace event.
292 */ 292 */
293void zfcp_erp_port_shutdown(struct zfcp_port *port, int clear, u8 id, void *ref) 293void zfcp_erp_port_shutdown(struct zfcp_port *port, int clear, char *id,
294 void *ref)
294{ 295{
295 int flags = ZFCP_STATUS_COMMON_RUNNING | ZFCP_STATUS_COMMON_ERP_FAILED; 296 int flags = ZFCP_STATUS_COMMON_RUNNING | ZFCP_STATUS_COMMON_ERP_FAILED;
296 zfcp_erp_port_reopen(port, clear | flags, id, ref); 297 zfcp_erp_port_reopen(port, clear | flags, id, ref);
@@ -303,7 +304,8 @@ void zfcp_erp_port_shutdown(struct zfcp_port *port, int clear, u8 id, void *ref)
303 * @id: Id for debug trace event. 304 * @id: Id for debug trace event.
304 * @ref: Reference for debug trace event. 305 * @ref: Reference for debug trace event.
305 */ 306 */
306void zfcp_erp_unit_shutdown(struct zfcp_unit *unit, int clear, u8 id, void *ref) 307void zfcp_erp_unit_shutdown(struct zfcp_unit *unit, int clear, char *id,
308 void *ref)
307{ 309{
308 int flags = ZFCP_STATUS_COMMON_RUNNING | ZFCP_STATUS_COMMON_ERP_FAILED; 310 int flags = ZFCP_STATUS_COMMON_RUNNING | ZFCP_STATUS_COMMON_ERP_FAILED;
309 zfcp_erp_unit_reopen(unit, clear | flags, id, ref); 311 zfcp_erp_unit_reopen(unit, clear | flags, id, ref);
@@ -311,13 +313,13 @@ void zfcp_erp_unit_shutdown(struct zfcp_unit *unit, int clear, u8 id, void *ref)
311 313
312static void zfcp_erp_port_block(struct zfcp_port *port, int clear) 314static void zfcp_erp_port_block(struct zfcp_port *port, int clear)
313{ 315{
314 zfcp_erp_modify_port_status(port, 17, NULL, 316 zfcp_erp_modify_port_status(port, "erpblk1", NULL,
315 ZFCP_STATUS_COMMON_UNBLOCKED | clear, 317 ZFCP_STATUS_COMMON_UNBLOCKED | clear,
316 ZFCP_CLEAR); 318 ZFCP_CLEAR);
317} 319}
318 320
319static void _zfcp_erp_port_forced_reopen(struct zfcp_port *port, 321static void _zfcp_erp_port_forced_reopen(struct zfcp_port *port,
320 int clear, u8 id, void *ref) 322 int clear, char *id, void *ref)
321{ 323{
322 zfcp_erp_port_block(port, clear); 324 zfcp_erp_port_block(port, clear);
323 325
@@ -334,7 +336,7 @@ static void _zfcp_erp_port_forced_reopen(struct zfcp_port *port,
334 * @id: Id for debug trace event. 336 * @id: Id for debug trace event.
335 * @ref: Reference for debug trace event. 337 * @ref: Reference for debug trace event.
336 */ 338 */
337void zfcp_erp_port_forced_reopen(struct zfcp_port *port, int clear, u8 id, 339void zfcp_erp_port_forced_reopen(struct zfcp_port *port, int clear, char *id,
338 void *ref) 340 void *ref)
339{ 341{
340 unsigned long flags; 342 unsigned long flags;
@@ -347,14 +349,14 @@ void zfcp_erp_port_forced_reopen(struct zfcp_port *port, int clear, u8 id,
347 read_unlock_irqrestore(&zfcp_data.config_lock, flags); 349 read_unlock_irqrestore(&zfcp_data.config_lock, flags);
348} 350}
349 351
350static int _zfcp_erp_port_reopen(struct zfcp_port *port, int clear, u8 id, 352static int _zfcp_erp_port_reopen(struct zfcp_port *port, int clear, char *id,
351 void *ref) 353 void *ref)
352{ 354{
353 zfcp_erp_port_block(port, clear); 355 zfcp_erp_port_block(port, clear);
354 356
355 if (atomic_read(&port->status) & ZFCP_STATUS_COMMON_ERP_FAILED) { 357 if (atomic_read(&port->status) & ZFCP_STATUS_COMMON_ERP_FAILED) {
356 /* ensure propagation of failed status to new devices */ 358 /* ensure propagation of failed status to new devices */
357 zfcp_erp_port_failed(port, 14, NULL); 359 zfcp_erp_port_failed(port, "erpreo1", NULL);
358 return -EIO; 360 return -EIO;
359 } 361 }
360 362
@@ -369,7 +371,7 @@ static int _zfcp_erp_port_reopen(struct zfcp_port *port, int clear, u8 id,
369 * 371 *
370 * Returns 0 if recovery has been triggered, < 0 if not. 372 * Returns 0 if recovery has been triggered, < 0 if not.
371 */ 373 */
372int zfcp_erp_port_reopen(struct zfcp_port *port, int clear, u8 id, void *ref) 374int zfcp_erp_port_reopen(struct zfcp_port *port, int clear, char *id, void *ref)
373{ 375{
374 unsigned long flags; 376 unsigned long flags;
375 int retval; 377 int retval;
@@ -386,12 +388,12 @@ int zfcp_erp_port_reopen(struct zfcp_port *port, int clear, u8 id, void *ref)
386 388
387static void zfcp_erp_unit_block(struct zfcp_unit *unit, int clear_mask) 389static void zfcp_erp_unit_block(struct zfcp_unit *unit, int clear_mask)
388{ 390{
389 zfcp_erp_modify_unit_status(unit, 19, NULL, 391 zfcp_erp_modify_unit_status(unit, "erublk1", NULL,
390 ZFCP_STATUS_COMMON_UNBLOCKED | clear_mask, 392 ZFCP_STATUS_COMMON_UNBLOCKED | clear_mask,
391 ZFCP_CLEAR); 393 ZFCP_CLEAR);
392} 394}
393 395
394static void _zfcp_erp_unit_reopen(struct zfcp_unit *unit, int clear, u8 id, 396static void _zfcp_erp_unit_reopen(struct zfcp_unit *unit, int clear, char *id,
395 void *ref) 397 void *ref)
396{ 398{
397 struct zfcp_adapter *adapter = unit->port->adapter; 399 struct zfcp_adapter *adapter = unit->port->adapter;
@@ -411,7 +413,8 @@ static void _zfcp_erp_unit_reopen(struct zfcp_unit *unit, int clear, u8 id,
411 * @clear_mask: specifies flags in unit status to be cleared 413 * @clear_mask: specifies flags in unit status to be cleared
412 * Return: 0 on success, < 0 on error 414 * Return: 0 on success, < 0 on error
413 */ 415 */
414void zfcp_erp_unit_reopen(struct zfcp_unit *unit, int clear, u8 id, void *ref) 416void zfcp_erp_unit_reopen(struct zfcp_unit *unit, int clear, char *id,
417 void *ref)
415{ 418{
416 unsigned long flags; 419 unsigned long flags;
417 struct zfcp_port *port = unit->port; 420 struct zfcp_port *port = unit->port;
@@ -437,28 +440,28 @@ static int status_change_clear(unsigned long mask, atomic_t *status)
437static void zfcp_erp_adapter_unblock(struct zfcp_adapter *adapter) 440static void zfcp_erp_adapter_unblock(struct zfcp_adapter *adapter)
438{ 441{
439 if (status_change_set(ZFCP_STATUS_COMMON_UNBLOCKED, &adapter->status)) 442 if (status_change_set(ZFCP_STATUS_COMMON_UNBLOCKED, &adapter->status))
440 zfcp_rec_dbf_event_adapter(16, NULL, adapter); 443 zfcp_rec_dbf_event_adapter("eraubl1", NULL, adapter);
441 atomic_set_mask(ZFCP_STATUS_COMMON_UNBLOCKED, &adapter->status); 444 atomic_set_mask(ZFCP_STATUS_COMMON_UNBLOCKED, &adapter->status);
442} 445}
443 446
444static void zfcp_erp_port_unblock(struct zfcp_port *port) 447static void zfcp_erp_port_unblock(struct zfcp_port *port)
445{ 448{
446 if (status_change_set(ZFCP_STATUS_COMMON_UNBLOCKED, &port->status)) 449 if (status_change_set(ZFCP_STATUS_COMMON_UNBLOCKED, &port->status))
447 zfcp_rec_dbf_event_port(18, NULL, port); 450 zfcp_rec_dbf_event_port("erpubl1", NULL, port);
448 atomic_set_mask(ZFCP_STATUS_COMMON_UNBLOCKED, &port->status); 451 atomic_set_mask(ZFCP_STATUS_COMMON_UNBLOCKED, &port->status);
449} 452}
450 453
451static void zfcp_erp_unit_unblock(struct zfcp_unit *unit) 454static void zfcp_erp_unit_unblock(struct zfcp_unit *unit)
452{ 455{
453 if (status_change_set(ZFCP_STATUS_COMMON_UNBLOCKED, &unit->status)) 456 if (status_change_set(ZFCP_STATUS_COMMON_UNBLOCKED, &unit->status))
454 zfcp_rec_dbf_event_unit(20, NULL, unit); 457 zfcp_rec_dbf_event_unit("eruubl1", NULL, unit);
455 atomic_set_mask(ZFCP_STATUS_COMMON_UNBLOCKED, &unit->status); 458 atomic_set_mask(ZFCP_STATUS_COMMON_UNBLOCKED, &unit->status);
456} 459}
457 460
458static void zfcp_erp_action_to_running(struct zfcp_erp_action *erp_action) 461static void zfcp_erp_action_to_running(struct zfcp_erp_action *erp_action)
459{ 462{
460 list_move(&erp_action->list, &erp_action->adapter->erp_running_head); 463 list_move(&erp_action->list, &erp_action->adapter->erp_running_head);
461 zfcp_rec_dbf_event_action(145, erp_action); 464 zfcp_rec_dbf_event_action("erator1", erp_action);
462} 465}
463 466
464static void zfcp_erp_strategy_check_fsfreq(struct zfcp_erp_action *act) 467static void zfcp_erp_strategy_check_fsfreq(struct zfcp_erp_action *act)
@@ -474,11 +477,11 @@ static void zfcp_erp_strategy_check_fsfreq(struct zfcp_erp_action *act)
474 if (act->status & (ZFCP_STATUS_ERP_DISMISSED | 477 if (act->status & (ZFCP_STATUS_ERP_DISMISSED |
475 ZFCP_STATUS_ERP_TIMEDOUT)) { 478 ZFCP_STATUS_ERP_TIMEDOUT)) {
476 act->fsf_req->status |= ZFCP_STATUS_FSFREQ_DISMISSED; 479 act->fsf_req->status |= ZFCP_STATUS_FSFREQ_DISMISSED;
477 zfcp_rec_dbf_event_action(142, act); 480 zfcp_rec_dbf_event_action("erscf_1", act);
478 act->fsf_req->erp_action = NULL; 481 act->fsf_req->erp_action = NULL;
479 } 482 }
480 if (act->status & ZFCP_STATUS_ERP_TIMEDOUT) 483 if (act->status & ZFCP_STATUS_ERP_TIMEDOUT)
481 zfcp_rec_dbf_event_action(143, act); 484 zfcp_rec_dbf_event_action("erscf_2", act);
482 if (act->fsf_req->status & (ZFCP_STATUS_FSFREQ_COMPLETED | 485 if (act->fsf_req->status & (ZFCP_STATUS_FSFREQ_COMPLETED |
483 ZFCP_STATUS_FSFREQ_DISMISSED)) 486 ZFCP_STATUS_FSFREQ_DISMISSED))
484 act->fsf_req = NULL; 487 act->fsf_req = NULL;
@@ -530,7 +533,7 @@ static void zfcp_erp_strategy_memwait(struct zfcp_erp_action *erp_action)
530} 533}
531 534
532static void _zfcp_erp_port_reopen_all(struct zfcp_adapter *adapter, 535static void _zfcp_erp_port_reopen_all(struct zfcp_adapter *adapter,
533 int clear, u8 id, void *ref) 536 int clear, char *id, void *ref)
534{ 537{
535 struct zfcp_port *port; 538 struct zfcp_port *port;
536 539
@@ -538,8 +541,8 @@ static void _zfcp_erp_port_reopen_all(struct zfcp_adapter *adapter,
538 _zfcp_erp_port_reopen(port, clear, id, ref); 541 _zfcp_erp_port_reopen(port, clear, id, ref);
539} 542}
540 543
541static void _zfcp_erp_unit_reopen_all(struct zfcp_port *port, int clear, u8 id, 544static void _zfcp_erp_unit_reopen_all(struct zfcp_port *port, int clear,
542 void *ref) 545 char *id, void *ref)
543{ 546{
544 struct zfcp_unit *unit; 547 struct zfcp_unit *unit;
545 548
@@ -559,28 +562,28 @@ static void zfcp_erp_strategy_followup_actions(struct zfcp_erp_action *act)
559 562
560 case ZFCP_ERP_ACTION_REOPEN_ADAPTER: 563 case ZFCP_ERP_ACTION_REOPEN_ADAPTER:
561 if (status == ZFCP_ERP_SUCCEEDED) 564 if (status == ZFCP_ERP_SUCCEEDED)
562 _zfcp_erp_port_reopen_all(adapter, 0, 70, NULL); 565 _zfcp_erp_port_reopen_all(adapter, 0, "ersfa_1", NULL);
563 else 566 else
564 _zfcp_erp_adapter_reopen(adapter, 0, 71, NULL); 567 _zfcp_erp_adapter_reopen(adapter, 0, "ersfa_2", NULL);
565 break; 568 break;
566 569
567 case ZFCP_ERP_ACTION_REOPEN_PORT_FORCED: 570 case ZFCP_ERP_ACTION_REOPEN_PORT_FORCED:
568 if (status == ZFCP_ERP_SUCCEEDED) 571 if (status == ZFCP_ERP_SUCCEEDED)
569 _zfcp_erp_port_reopen(port, 0, 72, NULL); 572 _zfcp_erp_port_reopen(port, 0, "ersfa_3", NULL);
570 else 573 else
571 _zfcp_erp_adapter_reopen(adapter, 0, 73, NULL); 574 _zfcp_erp_adapter_reopen(adapter, 0, "ersfa_4", NULL);
572 break; 575 break;
573 576
574 case ZFCP_ERP_ACTION_REOPEN_PORT: 577 case ZFCP_ERP_ACTION_REOPEN_PORT:
575 if (status == ZFCP_ERP_SUCCEEDED) 578 if (status == ZFCP_ERP_SUCCEEDED)
576 _zfcp_erp_unit_reopen_all(port, 0, 74, NULL); 579 _zfcp_erp_unit_reopen_all(port, 0, "ersfa_5", NULL);
577 else 580 else
578 _zfcp_erp_port_forced_reopen(port, 0, 75, NULL); 581 _zfcp_erp_port_forced_reopen(port, 0, "ersfa_6", NULL);
579 break; 582 break;
580 583
581 case ZFCP_ERP_ACTION_REOPEN_UNIT: 584 case ZFCP_ERP_ACTION_REOPEN_UNIT:
582 if (status != ZFCP_ERP_SUCCEEDED) 585 if (status != ZFCP_ERP_SUCCEEDED)
583 _zfcp_erp_port_reopen(unit->port, 0, 76, NULL); 586 _zfcp_erp_port_reopen(unit->port, 0, "ersfa_7", NULL);
584 break; 587 break;
585 } 588 }
586} 589}
@@ -617,7 +620,7 @@ static void zfcp_erp_enqueue_ptp_port(struct zfcp_adapter *adapter)
617 adapter->peer_d_id); 620 adapter->peer_d_id);
618 if (IS_ERR(port)) /* error or port already attached */ 621 if (IS_ERR(port)) /* error or port already attached */
619 return; 622 return;
620 _zfcp_erp_port_reopen(port, 0, 150, NULL); 623 _zfcp_erp_port_reopen(port, 0, "ereptp1", NULL);
621} 624}
622 625
623static int zfcp_erp_adapter_strat_fsf_xconf(struct zfcp_erp_action *erp_action) 626static int zfcp_erp_adapter_strat_fsf_xconf(struct zfcp_erp_action *erp_action)
@@ -640,9 +643,9 @@ static int zfcp_erp_adapter_strat_fsf_xconf(struct zfcp_erp_action *erp_action)
640 return ZFCP_ERP_FAILED; 643 return ZFCP_ERP_FAILED;
641 } 644 }
642 645
643 zfcp_rec_dbf_event_thread_lock(6, adapter); 646 zfcp_rec_dbf_event_thread_lock("erasfx1", adapter);
644 down(&adapter->erp_ready_sem); 647 down(&adapter->erp_ready_sem);
645 zfcp_rec_dbf_event_thread_lock(7, adapter); 648 zfcp_rec_dbf_event_thread_lock("erasfx2", adapter);
646 if (erp_action->status & ZFCP_STATUS_ERP_TIMEDOUT) 649 if (erp_action->status & ZFCP_STATUS_ERP_TIMEDOUT)
647 break; 650 break;
648 651
@@ -681,9 +684,9 @@ static int zfcp_erp_adapter_strategy_open_fsf_xport(struct zfcp_erp_action *act)
681 if (ret) 684 if (ret)
682 return ZFCP_ERP_FAILED; 685 return ZFCP_ERP_FAILED;
683 686
684 zfcp_rec_dbf_event_thread_lock(8, adapter); 687 zfcp_rec_dbf_event_thread_lock("erasox1", adapter);
685 down(&adapter->erp_ready_sem); 688 down(&adapter->erp_ready_sem);
686 zfcp_rec_dbf_event_thread_lock(9, adapter); 689 zfcp_rec_dbf_event_thread_lock("erasox2", adapter);
687 if (act->status & ZFCP_STATUS_ERP_TIMEDOUT) 690 if (act->status & ZFCP_STATUS_ERP_TIMEDOUT)
688 return ZFCP_ERP_FAILED; 691 return ZFCP_ERP_FAILED;
689 692
@@ -714,7 +717,7 @@ static void zfcp_erp_adapter_strategy_close(struct zfcp_erp_action *act)
714 zfcp_fsf_req_dismiss_all(adapter); 717 zfcp_fsf_req_dismiss_all(adapter);
715 adapter->fsf_req_seq_no = 0; 718 adapter->fsf_req_seq_no = 0;
716 /* all ports and units are closed */ 719 /* all ports and units are closed */
717 zfcp_erp_modify_adapter_status(adapter, 24, NULL, 720 zfcp_erp_modify_adapter_status(adapter, "erascl1", NULL,
718 ZFCP_STATUS_COMMON_OPEN, ZFCP_CLEAR); 721 ZFCP_STATUS_COMMON_OPEN, ZFCP_CLEAR);
719 722
720 atomic_clear_mask(ZFCP_STATUS_ADAPTER_XCONFIG_OK | 723 atomic_clear_mask(ZFCP_STATUS_ADAPTER_XCONFIG_OK |
@@ -832,7 +835,7 @@ static int zfcp_erp_open_ptp_port(struct zfcp_erp_action *act)
832 struct zfcp_port *port = act->port; 835 struct zfcp_port *port = act->port;
833 836
834 if (port->wwpn != adapter->peer_wwpn) { 837 if (port->wwpn != adapter->peer_wwpn) {
835 zfcp_erp_port_failed(port, 25, NULL); 838 zfcp_erp_port_failed(port, "eroptp1", NULL);
836 return ZFCP_ERP_FAILED; 839 return ZFCP_ERP_FAILED;
837 } 840 }
838 port->d_id = adapter->peer_d_id; 841 port->d_id = adapter->peer_d_id;
@@ -986,7 +989,7 @@ static int zfcp_erp_strategy_check_unit(struct zfcp_unit *unit, int result)
986 "port 0x%016Lx\n", 989 "port 0x%016Lx\n",
987 (unsigned long long)unit->fcp_lun, 990 (unsigned long long)unit->fcp_lun,
988 (unsigned long long)unit->port->wwpn); 991 (unsigned long long)unit->port->wwpn);
989 zfcp_erp_unit_failed(unit, 21, NULL); 992 zfcp_erp_unit_failed(unit, "erusck1", NULL);
990 } 993 }
991 break; 994 break;
992 } 995 }
@@ -1016,7 +1019,7 @@ static int zfcp_erp_strategy_check_port(struct zfcp_port *port, int result)
1016 dev_err(&port->adapter->ccw_device->dev, 1019 dev_err(&port->adapter->ccw_device->dev,
1017 "ERP failed for remote port 0x%016Lx\n", 1020 "ERP failed for remote port 0x%016Lx\n",
1018 (unsigned long long)port->wwpn); 1021 (unsigned long long)port->wwpn);
1019 zfcp_erp_port_failed(port, 22, NULL); 1022 zfcp_erp_port_failed(port, "erpsck1", NULL);
1020 } 1023 }
1021 break; 1024 break;
1022 } 1025 }
@@ -1043,7 +1046,7 @@ static int zfcp_erp_strategy_check_adapter(struct zfcp_adapter *adapter,
1043 dev_err(&adapter->ccw_device->dev, 1046 dev_err(&adapter->ccw_device->dev,
1044 "ERP cannot recover an error " 1047 "ERP cannot recover an error "
1045 "on the FCP device\n"); 1048 "on the FCP device\n");
1046 zfcp_erp_adapter_failed(adapter, 23, NULL); 1049 zfcp_erp_adapter_failed(adapter, "erasck1", NULL);
1047 } 1050 }
1048 break; 1051 break;
1049 } 1052 }
@@ -1108,7 +1111,7 @@ static int zfcp_erp_strategy_statechange(struct zfcp_erp_action *act, int ret)
1108 if (zfcp_erp_strat_change_det(&adapter->status, erp_status)) { 1111 if (zfcp_erp_strat_change_det(&adapter->status, erp_status)) {
1109 _zfcp_erp_adapter_reopen(adapter, 1112 _zfcp_erp_adapter_reopen(adapter,
1110 ZFCP_STATUS_COMMON_ERP_FAILED, 1113 ZFCP_STATUS_COMMON_ERP_FAILED,
1111 67, NULL); 1114 "ersscg1", NULL);
1112 return ZFCP_ERP_EXIT; 1115 return ZFCP_ERP_EXIT;
1113 } 1116 }
1114 break; 1117 break;
@@ -1118,7 +1121,7 @@ static int zfcp_erp_strategy_statechange(struct zfcp_erp_action *act, int ret)
1118 if (zfcp_erp_strat_change_det(&port->status, erp_status)) { 1121 if (zfcp_erp_strat_change_det(&port->status, erp_status)) {
1119 _zfcp_erp_port_reopen(port, 1122 _zfcp_erp_port_reopen(port,
1120 ZFCP_STATUS_COMMON_ERP_FAILED, 1123 ZFCP_STATUS_COMMON_ERP_FAILED,
1121 68, NULL); 1124 "ersscg2", NULL);
1122 return ZFCP_ERP_EXIT; 1125 return ZFCP_ERP_EXIT;
1123 } 1126 }
1124 break; 1127 break;
@@ -1127,7 +1130,7 @@ static int zfcp_erp_strategy_statechange(struct zfcp_erp_action *act, int ret)
1127 if (zfcp_erp_strat_change_det(&unit->status, erp_status)) { 1130 if (zfcp_erp_strat_change_det(&unit->status, erp_status)) {
1128 _zfcp_erp_unit_reopen(unit, 1131 _zfcp_erp_unit_reopen(unit,
1129 ZFCP_STATUS_COMMON_ERP_FAILED, 1132 ZFCP_STATUS_COMMON_ERP_FAILED,
1130 69, NULL); 1133 "ersscg3", NULL);
1131 return ZFCP_ERP_EXIT; 1134 return ZFCP_ERP_EXIT;
1132 } 1135 }
1133 break; 1136 break;
@@ -1146,7 +1149,7 @@ static void zfcp_erp_action_dequeue(struct zfcp_erp_action *erp_action)
1146 } 1149 }
1147 1150
1148 list_del(&erp_action->list); 1151 list_del(&erp_action->list);
1149 zfcp_rec_dbf_event_action(144, erp_action); 1152 zfcp_rec_dbf_event_action("eractd1", erp_action);
1150 1153
1151 switch (erp_action->action) { 1154 switch (erp_action->action) {
1152 case ZFCP_ERP_ACTION_REOPEN_UNIT: 1155 case ZFCP_ERP_ACTION_REOPEN_UNIT:
@@ -1331,7 +1334,7 @@ static int zfcp_erp_strategy(struct zfcp_erp_action *erp_action)
1331 erp_action->status |= ZFCP_STATUS_ERP_LOWMEM; 1334 erp_action->status |= ZFCP_STATUS_ERP_LOWMEM;
1332 } 1335 }
1333 if (adapter->erp_total_count == adapter->erp_low_mem_count) 1336 if (adapter->erp_total_count == adapter->erp_low_mem_count)
1334 _zfcp_erp_adapter_reopen(adapter, 0, 66, NULL); 1337 _zfcp_erp_adapter_reopen(adapter, 0, "erstgy1", NULL);
1335 else { 1338 else {
1336 zfcp_erp_strategy_memwait(erp_action); 1339 zfcp_erp_strategy_memwait(erp_action);
1337 retval = ZFCP_ERP_CONTINUES; 1340 retval = ZFCP_ERP_CONTINUES;
@@ -1391,9 +1394,9 @@ static int zfcp_erp_thread(void *data)
1391 zfcp_erp_wakeup(adapter); 1394 zfcp_erp_wakeup(adapter);
1392 } 1395 }
1393 1396
1394 zfcp_rec_dbf_event_thread_lock(4, adapter); 1397 zfcp_rec_dbf_event_thread_lock("erthrd1", adapter);
1395 ignore = down_interruptible(&adapter->erp_ready_sem); 1398 ignore = down_interruptible(&adapter->erp_ready_sem);
1396 zfcp_rec_dbf_event_thread_lock(5, adapter); 1399 zfcp_rec_dbf_event_thread_lock("erthrd2", adapter);
1397 } 1400 }
1398 1401
1399 atomic_clear_mask(ZFCP_STATUS_ADAPTER_ERP_THREAD_UP, &adapter->status); 1402 atomic_clear_mask(ZFCP_STATUS_ADAPTER_ERP_THREAD_UP, &adapter->status);
@@ -1438,7 +1441,7 @@ void zfcp_erp_thread_kill(struct zfcp_adapter *adapter)
1438{ 1441{
1439 atomic_set_mask(ZFCP_STATUS_ADAPTER_ERP_THREAD_KILL, &adapter->status); 1442 atomic_set_mask(ZFCP_STATUS_ADAPTER_ERP_THREAD_KILL, &adapter->status);
1440 up(&adapter->erp_ready_sem); 1443 up(&adapter->erp_ready_sem);
1441 zfcp_rec_dbf_event_thread_lock(3, adapter); 1444 zfcp_rec_dbf_event_thread_lock("erthrk1", adapter);
1442 1445
1443 wait_event(adapter->erp_thread_wqh, 1446 wait_event(adapter->erp_thread_wqh,
1444 !(atomic_read(&adapter->status) & 1447 !(atomic_read(&adapter->status) &
@@ -1454,7 +1457,7 @@ void zfcp_erp_thread_kill(struct zfcp_adapter *adapter)
1454 * @id: Event id for debug trace. 1457 * @id: Event id for debug trace.
1455 * @ref: Reference for debug trace. 1458 * @ref: Reference for debug trace.
1456 */ 1459 */
1457void zfcp_erp_adapter_failed(struct zfcp_adapter *adapter, u8 id, void *ref) 1460void zfcp_erp_adapter_failed(struct zfcp_adapter *adapter, char *id, void *ref)
1458{ 1461{
1459 zfcp_erp_modify_adapter_status(adapter, id, ref, 1462 zfcp_erp_modify_adapter_status(adapter, id, ref,
1460 ZFCP_STATUS_COMMON_ERP_FAILED, ZFCP_SET); 1463 ZFCP_STATUS_COMMON_ERP_FAILED, ZFCP_SET);
@@ -1466,7 +1469,7 @@ void zfcp_erp_adapter_failed(struct zfcp_adapter *adapter, u8 id, void *ref)
1466 * @id: Event id for debug trace. 1469 * @id: Event id for debug trace.
1467 * @ref: Reference for debug trace. 1470 * @ref: Reference for debug trace.
1468 */ 1471 */
1469void zfcp_erp_port_failed(struct zfcp_port *port, u8 id, void *ref) 1472void zfcp_erp_port_failed(struct zfcp_port *port, char *id, void *ref)
1470{ 1473{
1471 zfcp_erp_modify_port_status(port, id, ref, 1474 zfcp_erp_modify_port_status(port, id, ref,
1472 ZFCP_STATUS_COMMON_ERP_FAILED, ZFCP_SET); 1475 ZFCP_STATUS_COMMON_ERP_FAILED, ZFCP_SET);
@@ -1478,7 +1481,7 @@ void zfcp_erp_port_failed(struct zfcp_port *port, u8 id, void *ref)
1478 * @id: Event id for debug trace. 1481 * @id: Event id for debug trace.
1479 * @ref: Reference for debug trace. 1482 * @ref: Reference for debug trace.
1480 */ 1483 */
1481void zfcp_erp_unit_failed(struct zfcp_unit *unit, u8 id, void *ref) 1484void zfcp_erp_unit_failed(struct zfcp_unit *unit, char *id, void *ref)
1482{ 1485{
1483 zfcp_erp_modify_unit_status(unit, id, ref, 1486 zfcp_erp_modify_unit_status(unit, id, ref,
1484 ZFCP_STATUS_COMMON_ERP_FAILED, ZFCP_SET); 1487 ZFCP_STATUS_COMMON_ERP_FAILED, ZFCP_SET);
@@ -1505,7 +1508,7 @@ void zfcp_erp_wait(struct zfcp_adapter *adapter)
1505 * 1508 *
1506 * Changes in common status bits are propagated to attached ports and units. 1509 * Changes in common status bits are propagated to attached ports and units.
1507 */ 1510 */
1508void zfcp_erp_modify_adapter_status(struct zfcp_adapter *adapter, u8 id, 1511void zfcp_erp_modify_adapter_status(struct zfcp_adapter *adapter, char *id,
1509 void *ref, u32 mask, int set_or_clear) 1512 void *ref, u32 mask, int set_or_clear)
1510{ 1513{
1511 struct zfcp_port *port; 1514 struct zfcp_port *port;
@@ -1539,7 +1542,7 @@ void zfcp_erp_modify_adapter_status(struct zfcp_adapter *adapter, u8 id,
1539 * 1542 *
1540 * Changes in common status bits are propagated to attached units. 1543 * Changes in common status bits are propagated to attached units.
1541 */ 1544 */
1542void zfcp_erp_modify_port_status(struct zfcp_port *port, u8 id, void *ref, 1545void zfcp_erp_modify_port_status(struct zfcp_port *port, char *id, void *ref,
1543 u32 mask, int set_or_clear) 1546 u32 mask, int set_or_clear)
1544{ 1547{
1545 struct zfcp_unit *unit; 1548 struct zfcp_unit *unit;
@@ -1571,7 +1574,7 @@ void zfcp_erp_modify_port_status(struct zfcp_port *port, u8 id, void *ref,
1571 * @mask: status bits to change 1574 * @mask: status bits to change
1572 * @set_or_clear: ZFCP_SET or ZFCP_CLEAR 1575 * @set_or_clear: ZFCP_SET or ZFCP_CLEAR
1573 */ 1576 */
1574void zfcp_erp_modify_unit_status(struct zfcp_unit *unit, u8 id, void *ref, 1577void zfcp_erp_modify_unit_status(struct zfcp_unit *unit, char *id, void *ref,
1575 u32 mask, int set_or_clear) 1578 u32 mask, int set_or_clear)
1576{ 1579{
1577 if (set_or_clear == ZFCP_SET) { 1580 if (set_or_clear == ZFCP_SET) {
@@ -1594,7 +1597,7 @@ void zfcp_erp_modify_unit_status(struct zfcp_unit *unit, u8 id, void *ref,
1594 * @id: The debug trace id. 1597 * @id: The debug trace id.
1595 * @id: Reference for the debug trace. 1598 * @id: Reference for the debug trace.
1596 */ 1599 */
1597void zfcp_erp_port_boxed(struct zfcp_port *port, u8 id, void *ref) 1600void zfcp_erp_port_boxed(struct zfcp_port *port, char *id, void *ref)
1598{ 1601{
1599 unsigned long flags; 1602 unsigned long flags;
1600 1603
@@ -1611,7 +1614,7 @@ void zfcp_erp_port_boxed(struct zfcp_port *port, u8 id, void *ref)
1611 * @id: The debug trace id. 1614 * @id: The debug trace id.
1612 * @id: Reference for the debug trace. 1615 * @id: Reference for the debug trace.
1613 */ 1616 */
1614void zfcp_erp_unit_boxed(struct zfcp_unit *unit, u8 id, void *ref) 1617void zfcp_erp_unit_boxed(struct zfcp_unit *unit, char *id, void *ref)
1615{ 1618{
1616 zfcp_erp_modify_unit_status(unit, id, ref, 1619 zfcp_erp_modify_unit_status(unit, id, ref,
1617 ZFCP_STATUS_COMMON_ACCESS_BOXED, ZFCP_SET); 1620 ZFCP_STATUS_COMMON_ACCESS_BOXED, ZFCP_SET);
@@ -1627,7 +1630,7 @@ void zfcp_erp_unit_boxed(struct zfcp_unit *unit, u8 id, void *ref)
1627 * Since the adapter has denied access, stop using the port and the 1630 * Since the adapter has denied access, stop using the port and the
1628 * attached units. 1631 * attached units.
1629 */ 1632 */
1630void zfcp_erp_port_access_denied(struct zfcp_port *port, u8 id, void *ref) 1633void zfcp_erp_port_access_denied(struct zfcp_port *port, char *id, void *ref)
1631{ 1634{
1632 unsigned long flags; 1635 unsigned long flags;
1633 1636
@@ -1646,14 +1649,14 @@ void zfcp_erp_port_access_denied(struct zfcp_port *port, u8 id, void *ref)
1646 * 1649 *
1647 * Since the adapter has denied access, stop using the unit. 1650 * Since the adapter has denied access, stop using the unit.
1648 */ 1651 */
1649void zfcp_erp_unit_access_denied(struct zfcp_unit *unit, u8 id, void *ref) 1652void zfcp_erp_unit_access_denied(struct zfcp_unit *unit, char *id, void *ref)
1650{ 1653{
1651 zfcp_erp_modify_unit_status(unit, id, ref, 1654 zfcp_erp_modify_unit_status(unit, id, ref,
1652 ZFCP_STATUS_COMMON_ERP_FAILED | 1655 ZFCP_STATUS_COMMON_ERP_FAILED |
1653 ZFCP_STATUS_COMMON_ACCESS_DENIED, ZFCP_SET); 1656 ZFCP_STATUS_COMMON_ACCESS_DENIED, ZFCP_SET);
1654} 1657}
1655 1658
1656static void zfcp_erp_unit_access_changed(struct zfcp_unit *unit, u8 id, 1659static void zfcp_erp_unit_access_changed(struct zfcp_unit *unit, char *id,
1657 void *ref) 1660 void *ref)
1658{ 1661{
1659 int status = atomic_read(&unit->status); 1662 int status = atomic_read(&unit->status);
@@ -1664,7 +1667,7 @@ static void zfcp_erp_unit_access_changed(struct zfcp_unit *unit, u8 id,
1664 zfcp_erp_unit_reopen(unit, ZFCP_STATUS_COMMON_ERP_FAILED, id, ref); 1667 zfcp_erp_unit_reopen(unit, ZFCP_STATUS_COMMON_ERP_FAILED, id, ref);
1665} 1668}
1666 1669
1667static void zfcp_erp_port_access_changed(struct zfcp_port *port, u8 id, 1670static void zfcp_erp_port_access_changed(struct zfcp_port *port, char *id,
1668 void *ref) 1671 void *ref)
1669{ 1672{
1670 struct zfcp_unit *unit; 1673 struct zfcp_unit *unit;
@@ -1686,7 +1689,7 @@ static void zfcp_erp_port_access_changed(struct zfcp_port *port, u8 id,
1686 * @id: Id for debug trace 1689 * @id: Id for debug trace
1687 * @ref: Reference for debug trace 1690 * @ref: Reference for debug trace
1688 */ 1691 */
1689void zfcp_erp_adapter_access_changed(struct zfcp_adapter *adapter, u8 id, 1692void zfcp_erp_adapter_access_changed(struct zfcp_adapter *adapter, char *id,
1690 void *ref) 1693 void *ref)
1691{ 1694{
1692 struct zfcp_port *port; 1695 struct zfcp_port *port;
diff --git a/drivers/s390/scsi/zfcp_ext.h b/drivers/s390/scsi/zfcp_ext.h
index a2b4987ac652..569d2437e99b 100644
--- a/drivers/s390/scsi/zfcp_ext.h
+++ b/drivers/s390/scsi/zfcp_ext.h
@@ -35,15 +35,15 @@ extern struct miscdevice zfcp_cfdc_misc;
35/* zfcp_dbf.c */ 35/* zfcp_dbf.c */
36extern int zfcp_adapter_debug_register(struct zfcp_adapter *); 36extern int zfcp_adapter_debug_register(struct zfcp_adapter *);
37extern void zfcp_adapter_debug_unregister(struct zfcp_adapter *); 37extern void zfcp_adapter_debug_unregister(struct zfcp_adapter *);
38extern void zfcp_rec_dbf_event_thread(u8, struct zfcp_adapter *); 38extern void zfcp_rec_dbf_event_thread(char *, struct zfcp_adapter *);
39extern void zfcp_rec_dbf_event_thread_lock(u8, struct zfcp_adapter *); 39extern void zfcp_rec_dbf_event_thread_lock(char *, struct zfcp_adapter *);
40extern void zfcp_rec_dbf_event_adapter(u8, void *, struct zfcp_adapter *); 40extern void zfcp_rec_dbf_event_adapter(char *, void *, struct zfcp_adapter *);
41extern void zfcp_rec_dbf_event_port(u8, void *, struct zfcp_port *); 41extern void zfcp_rec_dbf_event_port(char *, void *, struct zfcp_port *);
42extern void zfcp_rec_dbf_event_unit(u8, void *, struct zfcp_unit *); 42extern void zfcp_rec_dbf_event_unit(char *, void *, struct zfcp_unit *);
43extern void zfcp_rec_dbf_event_trigger(u8, void *, u8, u8, void *, 43extern void zfcp_rec_dbf_event_trigger(char *, void *, u8, u8, void *,
44 struct zfcp_adapter *, 44 struct zfcp_adapter *,
45 struct zfcp_port *, struct zfcp_unit *); 45 struct zfcp_port *, struct zfcp_unit *);
46extern void zfcp_rec_dbf_event_action(u8, struct zfcp_erp_action *); 46extern void zfcp_rec_dbf_event_action(char *, struct zfcp_erp_action *);
47extern void zfcp_hba_dbf_event_fsf_response(struct zfcp_fsf_req *); 47extern void zfcp_hba_dbf_event_fsf_response(struct zfcp_fsf_req *);
48extern void zfcp_hba_dbf_event_fsf_unsol(const char *, struct zfcp_adapter *, 48extern void zfcp_hba_dbf_event_fsf_unsol(const char *, struct zfcp_adapter *,
49 struct fsf_status_read_buffer *); 49 struct fsf_status_read_buffer *);
@@ -66,31 +66,34 @@ extern void zfcp_scsi_dbf_event_devreset(const char *, u8, struct zfcp_unit *,
66 struct scsi_cmnd *); 66 struct scsi_cmnd *);
67 67
68/* zfcp_erp.c */ 68/* zfcp_erp.c */
69extern void zfcp_erp_modify_adapter_status(struct zfcp_adapter *, u8, void *, 69extern void zfcp_erp_modify_adapter_status(struct zfcp_adapter *, char *,
70 u32, int); 70 void *, u32, int);
71extern void zfcp_erp_adapter_reopen(struct zfcp_adapter *, int, u8, void *); 71extern void zfcp_erp_adapter_reopen(struct zfcp_adapter *, int, char *, void *);
72extern void zfcp_erp_adapter_shutdown(struct zfcp_adapter *, int, u8, void *); 72extern void zfcp_erp_adapter_shutdown(struct zfcp_adapter *, int, char *,
73extern void zfcp_erp_adapter_failed(struct zfcp_adapter *, u8, void *); 73 void *);
74extern void zfcp_erp_modify_port_status(struct zfcp_port *, u8, void *, u32, 74extern void zfcp_erp_adapter_failed(struct zfcp_adapter *, char *, void *);
75extern void zfcp_erp_modify_port_status(struct zfcp_port *, char *, void *, u32,
75 int); 76 int);
76extern int zfcp_erp_port_reopen(struct zfcp_port *, int, u8, void *); 77extern int zfcp_erp_port_reopen(struct zfcp_port *, int, char *, void *);
77extern void zfcp_erp_port_shutdown(struct zfcp_port *, int, u8, void *); 78extern void zfcp_erp_port_shutdown(struct zfcp_port *, int, char *, void *);
78extern void zfcp_erp_port_forced_reopen(struct zfcp_port *, int, u8, void *); 79extern void zfcp_erp_port_forced_reopen(struct zfcp_port *, int, char *,
79extern void zfcp_erp_port_failed(struct zfcp_port *, u8, void *); 80 void *);
80extern void zfcp_erp_modify_unit_status(struct zfcp_unit *, u8, void *, u32, 81extern void zfcp_erp_port_failed(struct zfcp_port *, char *, void *);
82extern void zfcp_erp_modify_unit_status(struct zfcp_unit *, char *, void *, u32,
81 int); 83 int);
82extern void zfcp_erp_unit_reopen(struct zfcp_unit *, int, u8, void *); 84extern void zfcp_erp_unit_reopen(struct zfcp_unit *, int, char *, void *);
83extern void zfcp_erp_unit_shutdown(struct zfcp_unit *, int, u8, void *); 85extern void zfcp_erp_unit_shutdown(struct zfcp_unit *, int, char *, void *);
84extern void zfcp_erp_unit_failed(struct zfcp_unit *, u8, void *); 86extern void zfcp_erp_unit_failed(struct zfcp_unit *, char *, void *);
85extern int zfcp_erp_thread_setup(struct zfcp_adapter *); 87extern int zfcp_erp_thread_setup(struct zfcp_adapter *);
86extern void zfcp_erp_thread_kill(struct zfcp_adapter *); 88extern void zfcp_erp_thread_kill(struct zfcp_adapter *);
87extern void zfcp_erp_wait(struct zfcp_adapter *); 89extern void zfcp_erp_wait(struct zfcp_adapter *);
88extern void zfcp_erp_notify(struct zfcp_erp_action *, unsigned long); 90extern void zfcp_erp_notify(struct zfcp_erp_action *, unsigned long);
89extern void zfcp_erp_port_boxed(struct zfcp_port *, u8, void *); 91extern void zfcp_erp_port_boxed(struct zfcp_port *, char *, void *);
90extern void zfcp_erp_unit_boxed(struct zfcp_unit *, u8, void *); 92extern void zfcp_erp_unit_boxed(struct zfcp_unit *, char *, void *);
91extern void zfcp_erp_port_access_denied(struct zfcp_port *, u8, void *); 93extern void zfcp_erp_port_access_denied(struct zfcp_port *, char *, void *);
92extern void zfcp_erp_unit_access_denied(struct zfcp_unit *, u8, void *); 94extern void zfcp_erp_unit_access_denied(struct zfcp_unit *, char *, void *);
93extern void zfcp_erp_adapter_access_changed(struct zfcp_adapter *, u8, void *); 95extern void zfcp_erp_adapter_access_changed(struct zfcp_adapter *, char *,
96 void *);
94extern void zfcp_erp_timeout_handler(unsigned long); 97extern void zfcp_erp_timeout_handler(unsigned long);
95extern void zfcp_erp_port_strategy_open_lookup(struct work_struct *); 98extern void zfcp_erp_port_strategy_open_lookup(struct work_struct *);
96 99
diff --git a/drivers/s390/scsi/zfcp_fc.c b/drivers/s390/scsi/zfcp_fc.c
index 0f435ed9d1a0..ec700b3c2100 100644
--- a/drivers/s390/scsi/zfcp_fc.c
+++ b/drivers/s390/scsi/zfcp_fc.c
@@ -150,7 +150,7 @@ static void _zfcp_fc_incoming_rscn(struct zfcp_fsf_req *fsf_req, u32 range,
150 /* Try to connect to unused ports anyway. */ 150 /* Try to connect to unused ports anyway. */
151 zfcp_erp_port_reopen(port, 151 zfcp_erp_port_reopen(port,
152 ZFCP_STATUS_COMMON_ERP_FAILED, 152 ZFCP_STATUS_COMMON_ERP_FAILED,
153 82, fsf_req); 153 "fcirsc1", fsf_req);
154 else if ((port->d_id & range) == (elem->nport_did & range)) 154 else if ((port->d_id & range) == (elem->nport_did & range))
155 /* Check connection status for connected ports */ 155 /* Check connection status for connected ports */
156 zfcp_test_link(port); 156 zfcp_test_link(port);
@@ -196,7 +196,7 @@ static void zfcp_fc_incoming_wwpn(struct zfcp_fsf_req *req, u64 wwpn)
196 read_unlock_irqrestore(&zfcp_data.config_lock, flags); 196 read_unlock_irqrestore(&zfcp_data.config_lock, flags);
197 197
198 if (port && (port->wwpn == wwpn)) 198 if (port && (port->wwpn == wwpn))
199 zfcp_erp_port_forced_reopen(port, 0, 83, req); 199 zfcp_erp_port_forced_reopen(port, 0, "fciwwp1", req);
200} 200}
201 201
202static void zfcp_fc_incoming_plogi(struct zfcp_fsf_req *req) 202static void zfcp_fc_incoming_plogi(struct zfcp_fsf_req *req)
@@ -374,7 +374,7 @@ static void zfcp_fc_adisc_handler(unsigned long data)
374 374
375 if (adisc->els.status) { 375 if (adisc->els.status) {
376 /* request rejected or timed out */ 376 /* request rejected or timed out */
377 zfcp_erp_port_forced_reopen(port, 0, 63, NULL); 377 zfcp_erp_port_forced_reopen(port, 0, "fcadh_1", NULL);
378 goto out; 378 goto out;
379 } 379 }
380 380
@@ -382,7 +382,7 @@ static void zfcp_fc_adisc_handler(unsigned long data)
382 port->wwnn = ls_adisc->wwnn; 382 port->wwnn = ls_adisc->wwnn;
383 383
384 if (port->wwpn != ls_adisc->wwpn) 384 if (port->wwpn != ls_adisc->wwpn)
385 zfcp_erp_port_reopen(port, 0, 64, NULL); 385 zfcp_erp_port_reopen(port, 0, "fcadh_2", NULL);
386 386
387 out: 387 out:
388 zfcp_port_put(port); 388 zfcp_port_put(port);
@@ -434,7 +434,7 @@ void zfcp_fc_link_test_work(struct work_struct *work)
434 /* send of ADISC was not possible */ 434 /* send of ADISC was not possible */
435 zfcp_port_put(port); 435 zfcp_port_put(port);
436 if (retval != -EBUSY) 436 if (retval != -EBUSY)
437 zfcp_erp_port_forced_reopen(port, 0, 65, NULL); 437 zfcp_erp_port_forced_reopen(port, 0, "fcltwk1", NULL);
438} 438}
439 439
440/** 440/**
@@ -536,7 +536,7 @@ static void zfcp_validate_port(struct zfcp_port *port)
536 zfcp_port_put(port); 536 zfcp_port_put(port);
537 return; 537 return;
538 } 538 }
539 zfcp_erp_port_shutdown(port, 0, 151, NULL); 539 zfcp_erp_port_shutdown(port, 0, "fcpval1", NULL);
540 zfcp_erp_wait(adapter); 540 zfcp_erp_wait(adapter);
541 zfcp_port_put(port); 541 zfcp_port_put(port);
542 zfcp_port_dequeue(port); 542 zfcp_port_dequeue(port);
@@ -599,7 +599,7 @@ static int zfcp_scan_eval_gpn_ft(struct zfcp_gpn_ft *gpn_ft, int max_entries)
599 if (IS_ERR(port)) 599 if (IS_ERR(port))
600 ret = PTR_ERR(port); 600 ret = PTR_ERR(port);
601 else 601 else
602 zfcp_erp_port_reopen(port, 0, 149, NULL); 602 zfcp_erp_port_reopen(port, 0, "fcegpf1", NULL);
603 } 603 }
604 604
605 zfcp_erp_wait(adapter); 605 zfcp_erp_wait(adapter);
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c
index 698e42214a37..b4c9ba085093 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -18,8 +18,8 @@
18static void zfcp_fsf_request_timeout_handler(unsigned long data) 18static void zfcp_fsf_request_timeout_handler(unsigned long data)
19{ 19{
20 struct zfcp_adapter *adapter = (struct zfcp_adapter *) data; 20 struct zfcp_adapter *adapter = (struct zfcp_adapter *) data;
21 zfcp_erp_adapter_reopen(adapter, ZFCP_STATUS_COMMON_ERP_FAILED, 62, 21 zfcp_erp_adapter_reopen(adapter, ZFCP_STATUS_COMMON_ERP_FAILED,
22 NULL); 22 "fsrth_1", NULL);
23} 23}
24 24
25static void zfcp_fsf_start_timer(struct zfcp_fsf_req *fsf_req, 25static void zfcp_fsf_start_timer(struct zfcp_fsf_req *fsf_req,
@@ -78,7 +78,7 @@ static void zfcp_fsf_access_denied_port(struct zfcp_fsf_req *req,
78 (unsigned long long)port->wwpn); 78 (unsigned long long)port->wwpn);
79 zfcp_act_eval_err(req->adapter, header->fsf_status_qual.halfword[0]); 79 zfcp_act_eval_err(req->adapter, header->fsf_status_qual.halfword[0]);
80 zfcp_act_eval_err(req->adapter, header->fsf_status_qual.halfword[1]); 80 zfcp_act_eval_err(req->adapter, header->fsf_status_qual.halfword[1]);
81 zfcp_erp_port_access_denied(port, 55, req); 81 zfcp_erp_port_access_denied(port, "fspad_1", req);
82 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 82 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
83} 83}
84 84
@@ -92,7 +92,7 @@ static void zfcp_fsf_access_denied_unit(struct zfcp_fsf_req *req,
92 (unsigned long long)unit->port->wwpn); 92 (unsigned long long)unit->port->wwpn);
93 zfcp_act_eval_err(req->adapter, header->fsf_status_qual.halfword[0]); 93 zfcp_act_eval_err(req->adapter, header->fsf_status_qual.halfword[0]);
94 zfcp_act_eval_err(req->adapter, header->fsf_status_qual.halfword[1]); 94 zfcp_act_eval_err(req->adapter, header->fsf_status_qual.halfword[1]);
95 zfcp_erp_unit_access_denied(unit, 59, req); 95 zfcp_erp_unit_access_denied(unit, "fsuad_1", req);
96 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 96 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
97} 97}
98 98
@@ -100,7 +100,7 @@ static void zfcp_fsf_class_not_supp(struct zfcp_fsf_req *req)
100{ 100{
101 dev_err(&req->adapter->ccw_device->dev, "FCP device not " 101 dev_err(&req->adapter->ccw_device->dev, "FCP device not "
102 "operational because of an unsupported FC class\n"); 102 "operational because of an unsupported FC class\n");
103 zfcp_erp_adapter_shutdown(req->adapter, 0, 123, req); 103 zfcp_erp_adapter_shutdown(req->adapter, 0, "fscns_1", req);
104 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 104 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
105} 105}
106 106
@@ -162,13 +162,13 @@ static void zfcp_fsf_status_read_port_closed(struct zfcp_fsf_req *req)
162 list_for_each_entry(port, &adapter->port_list_head, list) 162 list_for_each_entry(port, &adapter->port_list_head, list)
163 if (port->d_id == d_id) { 163 if (port->d_id == d_id) {
164 read_unlock_irqrestore(&zfcp_data.config_lock, flags); 164 read_unlock_irqrestore(&zfcp_data.config_lock, flags);
165 zfcp_erp_port_reopen(port, 0, 101, req); 165 zfcp_erp_port_reopen(port, 0, "fssrpc1", req);
166 return; 166 return;
167 } 167 }
168 read_unlock_irqrestore(&zfcp_data.config_lock, flags); 168 read_unlock_irqrestore(&zfcp_data.config_lock, flags);
169} 169}
170 170
171static void zfcp_fsf_link_down_info_eval(struct zfcp_fsf_req *req, u8 id, 171static void zfcp_fsf_link_down_info_eval(struct zfcp_fsf_req *req, char *id,
172 struct fsf_link_down_info *link_down) 172 struct fsf_link_down_info *link_down)
173{ 173{
174 struct zfcp_adapter *adapter = req->adapter; 174 struct zfcp_adapter *adapter = req->adapter;
@@ -257,13 +257,13 @@ static void zfcp_fsf_status_read_link_down(struct zfcp_fsf_req *req)
257 257
258 switch (sr_buf->status_subtype) { 258 switch (sr_buf->status_subtype) {
259 case FSF_STATUS_READ_SUB_NO_PHYSICAL_LINK: 259 case FSF_STATUS_READ_SUB_NO_PHYSICAL_LINK:
260 zfcp_fsf_link_down_info_eval(req, 38, ldi); 260 zfcp_fsf_link_down_info_eval(req, "fssrld1", ldi);
261 break; 261 break;
262 case FSF_STATUS_READ_SUB_FDISC_FAILED: 262 case FSF_STATUS_READ_SUB_FDISC_FAILED:
263 zfcp_fsf_link_down_info_eval(req, 39, ldi); 263 zfcp_fsf_link_down_info_eval(req, "fssrld2", ldi);
264 break; 264 break;
265 case FSF_STATUS_READ_SUB_FIRMWARE_UPDATE: 265 case FSF_STATUS_READ_SUB_FIRMWARE_UPDATE:
266 zfcp_fsf_link_down_info_eval(req, 40, NULL); 266 zfcp_fsf_link_down_info_eval(req, "fssrld3", NULL);
267 }; 267 };
268} 268}
269 269
@@ -303,22 +303,23 @@ static void zfcp_fsf_status_read_handler(struct zfcp_fsf_req *req)
303 dev_info(&adapter->ccw_device->dev, 303 dev_info(&adapter->ccw_device->dev,
304 "The local link has been restored\n"); 304 "The local link has been restored\n");
305 /* All ports should be marked as ready to run again */ 305 /* All ports should be marked as ready to run again */
306 zfcp_erp_modify_adapter_status(adapter, 30, NULL, 306 zfcp_erp_modify_adapter_status(adapter, "fssrh_1", NULL,
307 ZFCP_STATUS_COMMON_RUNNING, 307 ZFCP_STATUS_COMMON_RUNNING,
308 ZFCP_SET); 308 ZFCP_SET);
309 zfcp_erp_adapter_reopen(adapter, 309 zfcp_erp_adapter_reopen(adapter,
310 ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED | 310 ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED |
311 ZFCP_STATUS_COMMON_ERP_FAILED, 311 ZFCP_STATUS_COMMON_ERP_FAILED,
312 102, req); 312 "fssrh_2", req);
313 break; 313 break;
314 case FSF_STATUS_READ_NOTIFICATION_LOST: 314 case FSF_STATUS_READ_NOTIFICATION_LOST:
315 if (sr_buf->status_subtype & FSF_STATUS_READ_SUB_ACT_UPDATED) 315 if (sr_buf->status_subtype & FSF_STATUS_READ_SUB_ACT_UPDATED)
316 zfcp_erp_adapter_access_changed(adapter, 135, req); 316 zfcp_erp_adapter_access_changed(adapter, "fssrh_3",
317 req);
317 if (sr_buf->status_subtype & FSF_STATUS_READ_SUB_INCOMING_ELS) 318 if (sr_buf->status_subtype & FSF_STATUS_READ_SUB_INCOMING_ELS)
318 schedule_work(&adapter->scan_work); 319 schedule_work(&adapter->scan_work);
319 break; 320 break;
320 case FSF_STATUS_READ_CFDC_UPDATED: 321 case FSF_STATUS_READ_CFDC_UPDATED:
321 zfcp_erp_adapter_access_changed(adapter, 136, req); 322 zfcp_erp_adapter_access_changed(adapter, "fssrh_4", req);
322 break; 323 break;
323 case FSF_STATUS_READ_FEATURE_UPDATE_ALERT: 324 case FSF_STATUS_READ_FEATURE_UPDATE_ALERT:
324 adapter->adapter_features = sr_buf->payload.word[0]; 325 adapter->adapter_features = sr_buf->payload.word[0];
@@ -347,7 +348,7 @@ static void zfcp_fsf_fsfstatus_qual_eval(struct zfcp_fsf_req *req)
347 dev_err(&req->adapter->ccw_device->dev, 348 dev_err(&req->adapter->ccw_device->dev,
348 "The FCP adapter reported a problem " 349 "The FCP adapter reported a problem "
349 "that cannot be recovered\n"); 350 "that cannot be recovered\n");
350 zfcp_erp_adapter_shutdown(req->adapter, 0, 121, req); 351 zfcp_erp_adapter_shutdown(req->adapter, 0, "fsfsqe1", req);
351 break; 352 break;
352 } 353 }
353 /* all non-return stats set FSFREQ_ERROR*/ 354 /* all non-return stats set FSFREQ_ERROR*/
@@ -364,7 +365,7 @@ static void zfcp_fsf_fsfstatus_eval(struct zfcp_fsf_req *req)
364 dev_err(&req->adapter->ccw_device->dev, 365 dev_err(&req->adapter->ccw_device->dev,
365 "The FCP adapter does not recognize the command 0x%x\n", 366 "The FCP adapter does not recognize the command 0x%x\n",
366 req->qtcb->header.fsf_command); 367 req->qtcb->header.fsf_command);
367 zfcp_erp_adapter_shutdown(req->adapter, 0, 120, req); 368 zfcp_erp_adapter_shutdown(req->adapter, 0, "fsfse_1", req);
368 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 369 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
369 break; 370 break;
370 case FSF_ADAPTER_STATUS_AVAILABLE: 371 case FSF_ADAPTER_STATUS_AVAILABLE:
@@ -396,17 +397,17 @@ static void zfcp_fsf_protstatus_eval(struct zfcp_fsf_req *req)
396 "QTCB version 0x%x not supported by FCP adapter " 397 "QTCB version 0x%x not supported by FCP adapter "
397 "(0x%x to 0x%x)\n", FSF_QTCB_CURRENT_VERSION, 398 "(0x%x to 0x%x)\n", FSF_QTCB_CURRENT_VERSION,
398 psq->word[0], psq->word[1]); 399 psq->word[0], psq->word[1]);
399 zfcp_erp_adapter_shutdown(adapter, 0, 117, req); 400 zfcp_erp_adapter_shutdown(adapter, 0, "fspse_1", req);
400 break; 401 break;
401 case FSF_PROT_ERROR_STATE: 402 case FSF_PROT_ERROR_STATE:
402 case FSF_PROT_SEQ_NUMB_ERROR: 403 case FSF_PROT_SEQ_NUMB_ERROR:
403 zfcp_erp_adapter_reopen(adapter, 0, 98, req); 404 zfcp_erp_adapter_reopen(adapter, 0, "fspse_2", req);
404 req->status |= ZFCP_STATUS_FSFREQ_RETRY; 405 req->status |= ZFCP_STATUS_FSFREQ_RETRY;
405 break; 406 break;
406 case FSF_PROT_UNSUPP_QTCB_TYPE: 407 case FSF_PROT_UNSUPP_QTCB_TYPE:
407 dev_err(&adapter->ccw_device->dev, 408 dev_err(&adapter->ccw_device->dev,
408 "The QTCB type is not supported by the FCP adapter\n"); 409 "The QTCB type is not supported by the FCP adapter\n");
409 zfcp_erp_adapter_shutdown(adapter, 0, 118, req); 410 zfcp_erp_adapter_shutdown(adapter, 0, "fspse_3", req);
410 break; 411 break;
411 case FSF_PROT_HOST_CONNECTION_INITIALIZING: 412 case FSF_PROT_HOST_CONNECTION_INITIALIZING:
412 atomic_set_mask(ZFCP_STATUS_ADAPTER_HOST_CON_INIT, 413 atomic_set_mask(ZFCP_STATUS_ADAPTER_HOST_CON_INIT,
@@ -416,27 +417,29 @@ static void zfcp_fsf_protstatus_eval(struct zfcp_fsf_req *req)
416 dev_err(&adapter->ccw_device->dev, 417 dev_err(&adapter->ccw_device->dev,
417 "0x%Lx is an ambiguous request identifier\n", 418 "0x%Lx is an ambiguous request identifier\n",
418 (unsigned long long)qtcb->bottom.support.req_handle); 419 (unsigned long long)qtcb->bottom.support.req_handle);
419 zfcp_erp_adapter_shutdown(adapter, 0, 78, req); 420 zfcp_erp_adapter_shutdown(adapter, 0, "fspse_4", req);
420 break; 421 break;
421 case FSF_PROT_LINK_DOWN: 422 case FSF_PROT_LINK_DOWN:
422 zfcp_fsf_link_down_info_eval(req, 37, &psq->link_down_info); 423 zfcp_fsf_link_down_info_eval(req, "fspse_5",
424 &psq->link_down_info);
423 /* FIXME: reopening adapter now? better wait for link up */ 425 /* FIXME: reopening adapter now? better wait for link up */
424 zfcp_erp_adapter_reopen(adapter, 0, 79, req); 426 zfcp_erp_adapter_reopen(adapter, 0, "fspse_6", req);
425 break; 427 break;
426 case FSF_PROT_REEST_QUEUE: 428 case FSF_PROT_REEST_QUEUE:
427 /* All ports should be marked as ready to run again */ 429 /* All ports should be marked as ready to run again */
428 zfcp_erp_modify_adapter_status(adapter, 28, NULL, 430 zfcp_erp_modify_adapter_status(adapter, "fspse_7", NULL,
429 ZFCP_STATUS_COMMON_RUNNING, 431 ZFCP_STATUS_COMMON_RUNNING,
430 ZFCP_SET); 432 ZFCP_SET);
431 zfcp_erp_adapter_reopen(adapter, 433 zfcp_erp_adapter_reopen(adapter,
432 ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED | 434 ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED |
433 ZFCP_STATUS_COMMON_ERP_FAILED, 99, req); 435 ZFCP_STATUS_COMMON_ERP_FAILED,
436 "fspse_8", req);
434 break; 437 break;
435 default: 438 default:
436 dev_err(&adapter->ccw_device->dev, 439 dev_err(&adapter->ccw_device->dev,
437 "0x%x is not a valid transfer protocol status\n", 440 "0x%x is not a valid transfer protocol status\n",
438 qtcb->prefix.prot_status); 441 qtcb->prefix.prot_status);
439 zfcp_erp_adapter_shutdown(adapter, 0, 119, req); 442 zfcp_erp_adapter_shutdown(adapter, 0, "fspse_9", req);
440 } 443 }
441 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 444 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
442} 445}
@@ -522,7 +525,7 @@ static int zfcp_fsf_exchange_config_evaluate(struct zfcp_fsf_req *req)
522 dev_err(&adapter->ccw_device->dev, 525 dev_err(&adapter->ccw_device->dev,
523 "Unknown or unsupported arbitrated loop " 526 "Unknown or unsupported arbitrated loop "
524 "fibre channel topology detected\n"); 527 "fibre channel topology detected\n");
525 zfcp_erp_adapter_shutdown(adapter, 0, 127, req); 528 zfcp_erp_adapter_shutdown(adapter, 0, "fsece_1", req);
526 return -EIO; 529 return -EIO;
527 } 530 }
528 531
@@ -556,7 +559,7 @@ static void zfcp_fsf_exchange_config_data_handler(struct zfcp_fsf_req *req)
556 "FCP adapter maximum QTCB size (%d bytes) " 559 "FCP adapter maximum QTCB size (%d bytes) "
557 "is too small\n", 560 "is too small\n",
558 bottom->max_qtcb_size); 561 bottom->max_qtcb_size);
559 zfcp_erp_adapter_shutdown(adapter, 0, 129, req); 562 zfcp_erp_adapter_shutdown(adapter, 0, "fsecdh1", req);
560 return; 563 return;
561 } 564 }
562 atomic_set_mask(ZFCP_STATUS_ADAPTER_XCONFIG_OK, 565 atomic_set_mask(ZFCP_STATUS_ADAPTER_XCONFIG_OK,
@@ -573,11 +576,11 @@ static void zfcp_fsf_exchange_config_data_handler(struct zfcp_fsf_req *req)
573 atomic_set_mask(ZFCP_STATUS_ADAPTER_XCONFIG_OK, 576 atomic_set_mask(ZFCP_STATUS_ADAPTER_XCONFIG_OK,
574 &adapter->status); 577 &adapter->status);
575 578
576 zfcp_fsf_link_down_info_eval(req, 42, 579 zfcp_fsf_link_down_info_eval(req, "fsecdh2",
577 &qtcb->header.fsf_status_qual.link_down_info); 580 &qtcb->header.fsf_status_qual.link_down_info);
578 break; 581 break;
579 default: 582 default:
580 zfcp_erp_adapter_shutdown(adapter, 0, 130, req); 583 zfcp_erp_adapter_shutdown(adapter, 0, "fsecdh3", req);
581 return; 584 return;
582 } 585 }
583 586
@@ -593,14 +596,14 @@ static void zfcp_fsf_exchange_config_data_handler(struct zfcp_fsf_req *req)
593 dev_err(&adapter->ccw_device->dev, 596 dev_err(&adapter->ccw_device->dev,
594 "The FCP adapter only supports newer " 597 "The FCP adapter only supports newer "
595 "control block versions\n"); 598 "control block versions\n");
596 zfcp_erp_adapter_shutdown(adapter, 0, 125, req); 599 zfcp_erp_adapter_shutdown(adapter, 0, "fsecdh4", req);
597 return; 600 return;
598 } 601 }
599 if (FSF_QTCB_CURRENT_VERSION > bottom->high_qtcb_version) { 602 if (FSF_QTCB_CURRENT_VERSION > bottom->high_qtcb_version) {
600 dev_err(&adapter->ccw_device->dev, 603 dev_err(&adapter->ccw_device->dev,
601 "The FCP adapter only supports older " 604 "The FCP adapter only supports older "
602 "control block versions\n"); 605 "control block versions\n");
603 zfcp_erp_adapter_shutdown(adapter, 0, 126, req); 606 zfcp_erp_adapter_shutdown(adapter, 0, "fsecdh5", req);
604 } 607 }
605} 608}
606 609
@@ -634,7 +637,7 @@ static void zfcp_fsf_exchange_port_data_handler(struct zfcp_fsf_req *req)
634 break; 637 break;
635 case FSF_EXCHANGE_CONFIG_DATA_INCOMPLETE: 638 case FSF_EXCHANGE_CONFIG_DATA_INCOMPLETE:
636 zfcp_fsf_exchange_port_evaluate(req); 639 zfcp_fsf_exchange_port_evaluate(req);
637 zfcp_fsf_link_down_info_eval(req, 43, 640 zfcp_fsf_link_down_info_eval(req, "fsepdh1",
638 &qtcb->header.fsf_status_qual.link_down_info); 641 &qtcb->header.fsf_status_qual.link_down_info);
639 break; 642 break;
640 } 643 }
@@ -779,7 +782,7 @@ static int zfcp_fsf_req_send(struct zfcp_fsf_req *req)
779 if (zfcp_reqlist_find_safe(adapter, req)) 782 if (zfcp_reqlist_find_safe(adapter, req))
780 zfcp_reqlist_remove(adapter, req); 783 zfcp_reqlist_remove(adapter, req);
781 spin_unlock_irqrestore(&adapter->req_list_lock, flags); 784 spin_unlock_irqrestore(&adapter->req_list_lock, flags);
782 zfcp_erp_adapter_reopen(adapter, 0, 116, req); 785 zfcp_erp_adapter_reopen(adapter, 0, "fsrs__1", req);
783 return -EIO; 786 return -EIO;
784 } 787 }
785 788
@@ -859,14 +862,14 @@ static void zfcp_fsf_abort_fcp_command_handler(struct zfcp_fsf_req *req)
859 switch (req->qtcb->header.fsf_status) { 862 switch (req->qtcb->header.fsf_status) {
860 case FSF_PORT_HANDLE_NOT_VALID: 863 case FSF_PORT_HANDLE_NOT_VALID:
861 if (fsq->word[0] == fsq->word[1]) { 864 if (fsq->word[0] == fsq->word[1]) {
862 zfcp_erp_adapter_reopen(unit->port->adapter, 0, 104, 865 zfcp_erp_adapter_reopen(unit->port->adapter, 0,
863 req); 866 "fsafch1", req);
864 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 867 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
865 } 868 }
866 break; 869 break;
867 case FSF_LUN_HANDLE_NOT_VALID: 870 case FSF_LUN_HANDLE_NOT_VALID:
868 if (fsq->word[0] == fsq->word[1]) { 871 if (fsq->word[0] == fsq->word[1]) {
869 zfcp_erp_port_reopen(unit->port, 0, 105, req); 872 zfcp_erp_port_reopen(unit->port, 0, "fsafch2", req);
870 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 873 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
871 } 874 }
872 break; 875 break;
@@ -874,12 +877,12 @@ static void zfcp_fsf_abort_fcp_command_handler(struct zfcp_fsf_req *req)
874 req->status |= ZFCP_STATUS_FSFREQ_ABORTNOTNEEDED; 877 req->status |= ZFCP_STATUS_FSFREQ_ABORTNOTNEEDED;
875 break; 878 break;
876 case FSF_PORT_BOXED: 879 case FSF_PORT_BOXED:
877 zfcp_erp_port_boxed(unit->port, 47, req); 880 zfcp_erp_port_boxed(unit->port, "fsafch3", req);
878 req->status |= ZFCP_STATUS_FSFREQ_ERROR | 881 req->status |= ZFCP_STATUS_FSFREQ_ERROR |
879 ZFCP_STATUS_FSFREQ_RETRY; 882 ZFCP_STATUS_FSFREQ_RETRY;
880 break; 883 break;
881 case FSF_LUN_BOXED: 884 case FSF_LUN_BOXED:
882 zfcp_erp_unit_boxed(unit, 48, req); 885 zfcp_erp_unit_boxed(unit, "fsafch4", req);
883 req->status |= ZFCP_STATUS_FSFREQ_ERROR | 886 req->status |= ZFCP_STATUS_FSFREQ_ERROR |
884 ZFCP_STATUS_FSFREQ_RETRY; 887 ZFCP_STATUS_FSFREQ_RETRY;
885 break; 888 break;
@@ -982,7 +985,7 @@ static void zfcp_fsf_send_ct_handler(struct zfcp_fsf_req *req)
982 ZFCP_STATUS_FSFREQ_RETRY; 985 ZFCP_STATUS_FSFREQ_RETRY;
983 break; 986 break;
984 case FSF_PORT_HANDLE_NOT_VALID: 987 case FSF_PORT_HANDLE_NOT_VALID:
985 zfcp_erp_adapter_reopen(adapter, 0, 106, req); 988 zfcp_erp_adapter_reopen(adapter, 0, "fsscth1", req);
986 case FSF_GENERIC_COMMAND_REJECTED: 989 case FSF_GENERIC_COMMAND_REJECTED:
987 case FSF_PAYLOAD_SIZE_MISMATCH: 990 case FSF_PAYLOAD_SIZE_MISMATCH:
988 case FSF_REQUEST_SIZE_TOO_LARGE: 991 case FSF_REQUEST_SIZE_TOO_LARGE:
@@ -1400,7 +1403,7 @@ static void zfcp_fsf_open_port_handler(struct zfcp_fsf_req *req)
1400 "Not enough FCP adapter resources to open " 1403 "Not enough FCP adapter resources to open "
1401 "remote port 0x%016Lx\n", 1404 "remote port 0x%016Lx\n",
1402 (unsigned long long)port->wwpn); 1405 (unsigned long long)port->wwpn);
1403 zfcp_erp_port_failed(port, 31, req); 1406 zfcp_erp_port_failed(port, "fsoph_1", req);
1404 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 1407 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
1405 break; 1408 break;
1406 case FSF_ADAPTER_STATUS_AVAILABLE: 1409 case FSF_ADAPTER_STATUS_AVAILABLE:
@@ -1506,13 +1509,13 @@ static void zfcp_fsf_close_port_handler(struct zfcp_fsf_req *req)
1506 1509
1507 switch (req->qtcb->header.fsf_status) { 1510 switch (req->qtcb->header.fsf_status) {
1508 case FSF_PORT_HANDLE_NOT_VALID: 1511 case FSF_PORT_HANDLE_NOT_VALID:
1509 zfcp_erp_adapter_reopen(port->adapter, 0, 107, req); 1512 zfcp_erp_adapter_reopen(port->adapter, 0, "fscph_1", req);
1510 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 1513 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
1511 break; 1514 break;
1512 case FSF_ADAPTER_STATUS_AVAILABLE: 1515 case FSF_ADAPTER_STATUS_AVAILABLE:
1513 break; 1516 break;
1514 case FSF_GOOD: 1517 case FSF_GOOD:
1515 zfcp_erp_modify_port_status(port, 33, req, 1518 zfcp_erp_modify_port_status(port, "fscph_2", req,
1516 ZFCP_STATUS_COMMON_OPEN, 1519 ZFCP_STATUS_COMMON_OPEN,
1517 ZFCP_CLEAR); 1520 ZFCP_CLEAR);
1518 break; 1521 break;
@@ -1641,7 +1644,7 @@ static void zfcp_fsf_close_wka_port_handler(struct zfcp_fsf_req *req)
1641 1644
1642 if (req->qtcb->header.fsf_status == FSF_PORT_HANDLE_NOT_VALID) { 1645 if (req->qtcb->header.fsf_status == FSF_PORT_HANDLE_NOT_VALID) {
1643 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 1646 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
1644 zfcp_erp_adapter_reopen(wka_port->adapter, 0, 84, req); 1647 zfcp_erp_adapter_reopen(wka_port->adapter, 0, "fscwph1", req);
1645 } 1648 }
1646 1649
1647 wka_port->status = ZFCP_WKA_PORT_OFFLINE; 1650 wka_port->status = ZFCP_WKA_PORT_OFFLINE;
@@ -1700,14 +1703,14 @@ static void zfcp_fsf_close_physical_port_handler(struct zfcp_fsf_req *req)
1700 1703
1701 switch (header->fsf_status) { 1704 switch (header->fsf_status) {
1702 case FSF_PORT_HANDLE_NOT_VALID: 1705 case FSF_PORT_HANDLE_NOT_VALID:
1703 zfcp_erp_adapter_reopen(port->adapter, 0, 108, req); 1706 zfcp_erp_adapter_reopen(port->adapter, 0, "fscpph1", req);
1704 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 1707 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
1705 break; 1708 break;
1706 case FSF_ACCESS_DENIED: 1709 case FSF_ACCESS_DENIED:
1707 zfcp_fsf_access_denied_port(req, port); 1710 zfcp_fsf_access_denied_port(req, port);
1708 break; 1711 break;
1709 case FSF_PORT_BOXED: 1712 case FSF_PORT_BOXED:
1710 zfcp_erp_port_boxed(port, 50, req); 1713 zfcp_erp_port_boxed(port, "fscpph2", req);
1711 req->status |= ZFCP_STATUS_FSFREQ_ERROR | 1714 req->status |= ZFCP_STATUS_FSFREQ_ERROR |
1712 ZFCP_STATUS_FSFREQ_RETRY; 1715 ZFCP_STATUS_FSFREQ_RETRY;
1713 /* can't use generic zfcp_erp_modify_port_status because 1716 /* can't use generic zfcp_erp_modify_port_status because
@@ -1805,7 +1808,7 @@ static void zfcp_fsf_open_unit_handler(struct zfcp_fsf_req *req)
1805 switch (header->fsf_status) { 1808 switch (header->fsf_status) {
1806 1809
1807 case FSF_PORT_HANDLE_NOT_VALID: 1810 case FSF_PORT_HANDLE_NOT_VALID:
1808 zfcp_erp_adapter_reopen(unit->port->adapter, 0, 109, req); 1811 zfcp_erp_adapter_reopen(unit->port->adapter, 0, "fsouh_1", req);
1809 /* fall through */ 1812 /* fall through */
1810 case FSF_LUN_ALREADY_OPEN: 1813 case FSF_LUN_ALREADY_OPEN:
1811 break; 1814 break;
@@ -1815,7 +1818,7 @@ static void zfcp_fsf_open_unit_handler(struct zfcp_fsf_req *req)
1815 atomic_clear_mask(ZFCP_STATUS_UNIT_READONLY, &unit->status); 1818 atomic_clear_mask(ZFCP_STATUS_UNIT_READONLY, &unit->status);
1816 break; 1819 break;
1817 case FSF_PORT_BOXED: 1820 case FSF_PORT_BOXED:
1818 zfcp_erp_port_boxed(unit->port, 51, req); 1821 zfcp_erp_port_boxed(unit->port, "fsouh_2", req);
1819 req->status |= ZFCP_STATUS_FSFREQ_ERROR | 1822 req->status |= ZFCP_STATUS_FSFREQ_ERROR |
1820 ZFCP_STATUS_FSFREQ_RETRY; 1823 ZFCP_STATUS_FSFREQ_RETRY;
1821 break; 1824 break;
@@ -1831,7 +1834,7 @@ static void zfcp_fsf_open_unit_handler(struct zfcp_fsf_req *req)
1831 else 1834 else
1832 zfcp_act_eval_err(adapter, 1835 zfcp_act_eval_err(adapter,
1833 header->fsf_status_qual.word[2]); 1836 header->fsf_status_qual.word[2]);
1834 zfcp_erp_unit_access_denied(unit, 60, req); 1837 zfcp_erp_unit_access_denied(unit, "fsouh_3", req);
1835 atomic_clear_mask(ZFCP_STATUS_UNIT_SHARED, &unit->status); 1838 atomic_clear_mask(ZFCP_STATUS_UNIT_SHARED, &unit->status);
1836 atomic_clear_mask(ZFCP_STATUS_UNIT_READONLY, &unit->status); 1839 atomic_clear_mask(ZFCP_STATUS_UNIT_READONLY, &unit->status);
1837 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 1840 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
@@ -1842,7 +1845,7 @@ static void zfcp_fsf_open_unit_handler(struct zfcp_fsf_req *req)
1842 "0x%016Lx on port 0x%016Lx\n", 1845 "0x%016Lx on port 0x%016Lx\n",
1843 (unsigned long long)unit->fcp_lun, 1846 (unsigned long long)unit->fcp_lun,
1844 (unsigned long long)unit->port->wwpn); 1847 (unsigned long long)unit->port->wwpn);
1845 zfcp_erp_unit_failed(unit, 34, req); 1848 zfcp_erp_unit_failed(unit, "fsouh_4", req);
1846 /* fall through */ 1849 /* fall through */
1847 case FSF_INVALID_COMMAND_OPTION: 1850 case FSF_INVALID_COMMAND_OPTION:
1848 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 1851 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
@@ -1891,9 +1894,9 @@ static void zfcp_fsf_open_unit_handler(struct zfcp_fsf_req *req)
1891 "port 0x%016Lx)\n", 1894 "port 0x%016Lx)\n",
1892 (unsigned long long)unit->fcp_lun, 1895 (unsigned long long)unit->fcp_lun,
1893 (unsigned long long)unit->port->wwpn); 1896 (unsigned long long)unit->port->wwpn);
1894 zfcp_erp_unit_failed(unit, 35, req); 1897 zfcp_erp_unit_failed(unit, "fsouh_5", req);
1895 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 1898 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
1896 zfcp_erp_unit_shutdown(unit, 0, 80, req); 1899 zfcp_erp_unit_shutdown(unit, 0, "fsouh_6", req);
1897 } else if (!exclusive && readwrite) { 1900 } else if (!exclusive && readwrite) {
1898 dev_err(&adapter->ccw_device->dev, 1901 dev_err(&adapter->ccw_device->dev,
1899 "Shared read-write access not " 1902 "Shared read-write access not "
@@ -1901,9 +1904,9 @@ static void zfcp_fsf_open_unit_handler(struct zfcp_fsf_req *req)
1901 "0x%016Lx)\n", 1904 "0x%016Lx)\n",
1902 (unsigned long long)unit->fcp_lun, 1905 (unsigned long long)unit->fcp_lun,
1903 (unsigned long long)unit->port->wwpn); 1906 (unsigned long long)unit->port->wwpn);
1904 zfcp_erp_unit_failed(unit, 36, req); 1907 zfcp_erp_unit_failed(unit, "fsouh_7", req);
1905 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 1908 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
1906 zfcp_erp_unit_shutdown(unit, 0, 81, req); 1909 zfcp_erp_unit_shutdown(unit, 0, "fsouh_8", req);
1907 } 1910 }
1908 } 1911 }
1909 break; 1912 break;
@@ -1968,15 +1971,15 @@ static void zfcp_fsf_close_unit_handler(struct zfcp_fsf_req *req)
1968 1971
1969 switch (req->qtcb->header.fsf_status) { 1972 switch (req->qtcb->header.fsf_status) {
1970 case FSF_PORT_HANDLE_NOT_VALID: 1973 case FSF_PORT_HANDLE_NOT_VALID:
1971 zfcp_erp_adapter_reopen(unit->port->adapter, 0, 110, req); 1974 zfcp_erp_adapter_reopen(unit->port->adapter, 0, "fscuh_1", req);
1972 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 1975 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
1973 break; 1976 break;
1974 case FSF_LUN_HANDLE_NOT_VALID: 1977 case FSF_LUN_HANDLE_NOT_VALID:
1975 zfcp_erp_port_reopen(unit->port, 0, 111, req); 1978 zfcp_erp_port_reopen(unit->port, 0, "fscuh_2", req);
1976 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 1979 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
1977 break; 1980 break;
1978 case FSF_PORT_BOXED: 1981 case FSF_PORT_BOXED:
1979 zfcp_erp_port_boxed(unit->port, 52, req); 1982 zfcp_erp_port_boxed(unit->port, "fscuh_3", req);
1980 req->status |= ZFCP_STATUS_FSFREQ_ERROR | 1983 req->status |= ZFCP_STATUS_FSFREQ_ERROR |
1981 ZFCP_STATUS_FSFREQ_RETRY; 1984 ZFCP_STATUS_FSFREQ_RETRY;
1982 break; 1985 break;
@@ -2215,12 +2218,12 @@ static void zfcp_fsf_send_fcp_command_handler(struct zfcp_fsf_req *req)
2215 switch (header->fsf_status) { 2218 switch (header->fsf_status) {
2216 case FSF_HANDLE_MISMATCH: 2219 case FSF_HANDLE_MISMATCH:
2217 case FSF_PORT_HANDLE_NOT_VALID: 2220 case FSF_PORT_HANDLE_NOT_VALID:
2218 zfcp_erp_adapter_reopen(unit->port->adapter, 0, 112, req); 2221 zfcp_erp_adapter_reopen(unit->port->adapter, 0, "fssfch1", req);
2219 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 2222 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
2220 break; 2223 break;
2221 case FSF_FCPLUN_NOT_VALID: 2224 case FSF_FCPLUN_NOT_VALID:
2222 case FSF_LUN_HANDLE_NOT_VALID: 2225 case FSF_LUN_HANDLE_NOT_VALID:
2223 zfcp_erp_port_reopen(unit->port, 0, 113, req); 2226 zfcp_erp_port_reopen(unit->port, 0, "fssfch2", req);
2224 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 2227 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
2225 break; 2228 break;
2226 case FSF_SERVICE_CLASS_NOT_SUPPORTED: 2229 case FSF_SERVICE_CLASS_NOT_SUPPORTED:
@@ -2236,7 +2239,8 @@ static void zfcp_fsf_send_fcp_command_handler(struct zfcp_fsf_req *req)
2236 req->qtcb->bottom.io.data_direction, 2239 req->qtcb->bottom.io.data_direction,
2237 (unsigned long long)unit->fcp_lun, 2240 (unsigned long long)unit->fcp_lun,
2238 (unsigned long long)unit->port->wwpn); 2241 (unsigned long long)unit->port->wwpn);
2239 zfcp_erp_adapter_shutdown(unit->port->adapter, 0, 133, req); 2242 zfcp_erp_adapter_shutdown(unit->port->adapter, 0, "fssfch3",
2243 req);
2240 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 2244 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
2241 break; 2245 break;
2242 case FSF_CMND_LENGTH_NOT_VALID: 2246 case FSF_CMND_LENGTH_NOT_VALID:
@@ -2246,16 +2250,17 @@ static void zfcp_fsf_send_fcp_command_handler(struct zfcp_fsf_req *req)
2246 req->qtcb->bottom.io.fcp_cmnd_length, 2250 req->qtcb->bottom.io.fcp_cmnd_length,
2247 (unsigned long long)unit->fcp_lun, 2251 (unsigned long long)unit->fcp_lun,
2248 (unsigned long long)unit->port->wwpn); 2252 (unsigned long long)unit->port->wwpn);
2249 zfcp_erp_adapter_shutdown(unit->port->adapter, 0, 134, req); 2253 zfcp_erp_adapter_shutdown(unit->port->adapter, 0, "fssfch4",
2254 req);
2250 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 2255 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
2251 break; 2256 break;
2252 case FSF_PORT_BOXED: 2257 case FSF_PORT_BOXED:
2253 zfcp_erp_port_boxed(unit->port, 53, req); 2258 zfcp_erp_port_boxed(unit->port, "fssfch5", req);
2254 req->status |= ZFCP_STATUS_FSFREQ_ERROR | 2259 req->status |= ZFCP_STATUS_FSFREQ_ERROR |
2255 ZFCP_STATUS_FSFREQ_RETRY; 2260 ZFCP_STATUS_FSFREQ_RETRY;
2256 break; 2261 break;
2257 case FSF_LUN_BOXED: 2262 case FSF_LUN_BOXED:
2258 zfcp_erp_unit_boxed(unit, 54, req); 2263 zfcp_erp_unit_boxed(unit, "fssfch6", req);
2259 req->status |= ZFCP_STATUS_FSFREQ_ERROR | 2264 req->status |= ZFCP_STATUS_FSFREQ_ERROR |
2260 ZFCP_STATUS_FSFREQ_RETRY; 2265 ZFCP_STATUS_FSFREQ_RETRY;
2261 break; 2266 break;
@@ -2388,7 +2393,7 @@ int zfcp_fsf_send_fcp_command_task(struct zfcp_unit *unit,
2388 "on port 0x%016Lx closed\n", 2393 "on port 0x%016Lx closed\n",
2389 (unsigned long long)unit->fcp_lun, 2394 (unsigned long long)unit->fcp_lun,
2390 (unsigned long long)unit->port->wwpn); 2395 (unsigned long long)unit->port->wwpn);
2391 zfcp_erp_unit_shutdown(unit, 0, 131, req); 2396 zfcp_erp_unit_shutdown(unit, 0, "fssfct1", req);
2392 retval = -EINVAL; 2397 retval = -EINVAL;
2393 } 2398 }
2394 goto failed_scsi_cmnd; 2399 goto failed_scsi_cmnd;
diff --git a/drivers/s390/scsi/zfcp_qdio.c b/drivers/s390/scsi/zfcp_qdio.c
index 3d0687090274..c2eb94f6370f 100644
--- a/drivers/s390/scsi/zfcp_qdio.c
+++ b/drivers/s390/scsi/zfcp_qdio.c
@@ -58,7 +58,7 @@ void zfcp_qdio_free(struct zfcp_adapter *adapter)
58 } 58 }
59} 59}
60 60
61static void zfcp_qdio_handler_error(struct zfcp_adapter *adapter, u8 id) 61static void zfcp_qdio_handler_error(struct zfcp_adapter *adapter, char *id)
62{ 62{
63 dev_warn(&adapter->ccw_device->dev, "A QDIO problem occurred\n"); 63 dev_warn(&adapter->ccw_device->dev, "A QDIO problem occurred\n");
64 64
@@ -103,7 +103,7 @@ static void zfcp_qdio_int_req(struct ccw_device *cdev, unsigned int qdio_err,
103 103
104 if (unlikely(qdio_err)) { 104 if (unlikely(qdio_err)) {
105 zfcp_hba_dbf_event_qdio(adapter, qdio_err, first, count); 105 zfcp_hba_dbf_event_qdio(adapter, qdio_err, first, count);
106 zfcp_qdio_handler_error(adapter, 140); 106 zfcp_qdio_handler_error(adapter, "qdireq1");
107 return; 107 return;
108 } 108 }
109 109
@@ -172,7 +172,7 @@ static void zfcp_qdio_int_resp(struct ccw_device *cdev, unsigned int qdio_err,
172 172
173 if (unlikely(qdio_err)) { 173 if (unlikely(qdio_err)) {
174 zfcp_hba_dbf_event_qdio(adapter, qdio_err, first, count); 174 zfcp_hba_dbf_event_qdio(adapter, qdio_err, first, count);
175 zfcp_qdio_handler_error(adapter, 147); 175 zfcp_qdio_handler_error(adapter, "qdires1");
176 return; 176 return;
177 } 177 }
178 178
diff --git a/drivers/s390/scsi/zfcp_scsi.c b/drivers/s390/scsi/zfcp_scsi.c
index c17505f767a9..2af8cfbc3890 100644
--- a/drivers/s390/scsi/zfcp_scsi.c
+++ b/drivers/s390/scsi/zfcp_scsi.c
@@ -28,7 +28,7 @@ static void zfcp_scsi_slave_destroy(struct scsi_device *sdpnt)
28{ 28{
29 struct zfcp_unit *unit = (struct zfcp_unit *) sdpnt->hostdata; 29 struct zfcp_unit *unit = (struct zfcp_unit *) sdpnt->hostdata;
30 unit->device = NULL; 30 unit->device = NULL;
31 zfcp_erp_unit_failed(unit, 12, NULL); 31 zfcp_erp_unit_failed(unit, "scslvd1", NULL);
32 zfcp_unit_put(unit); 32 zfcp_unit_put(unit);
33} 33}
34 34
@@ -257,7 +257,7 @@ static int zfcp_scsi_eh_host_reset_handler(struct scsi_cmnd *scpnt)
257 struct zfcp_unit *unit = scpnt->device->hostdata; 257 struct zfcp_unit *unit = scpnt->device->hostdata;
258 struct zfcp_adapter *adapter = unit->port->adapter; 258 struct zfcp_adapter *adapter = unit->port->adapter;
259 259
260 zfcp_erp_adapter_reopen(adapter, 0, 141, scpnt); 260 zfcp_erp_adapter_reopen(adapter, 0, "schrh_1", scpnt);
261 zfcp_erp_wait(adapter); 261 zfcp_erp_wait(adapter);
262 262
263 return SUCCESS; 263 return SUCCESS;
diff --git a/drivers/s390/scsi/zfcp_sysfs.c b/drivers/s390/scsi/zfcp_sysfs.c
index 14e38c231f01..9a3b8e261c0a 100644
--- a/drivers/s390/scsi/zfcp_sysfs.c
+++ b/drivers/s390/scsi/zfcp_sysfs.c
@@ -112,9 +112,9 @@ static ZFCP_DEV_ATTR(_feat, failed, S_IWUSR | S_IRUGO, \
112 zfcp_sysfs_##_feat##_failed_show, \ 112 zfcp_sysfs_##_feat##_failed_show, \
113 zfcp_sysfs_##_feat##_failed_store); 113 zfcp_sysfs_##_feat##_failed_store);
114 114
115ZFCP_SYSFS_FAILED(zfcp_adapter, adapter, adapter, 44, 93); 115ZFCP_SYSFS_FAILED(zfcp_adapter, adapter, adapter, "syafai1", "syafai2");
116ZFCP_SYSFS_FAILED(zfcp_port, port, port->adapter, 45, 96); 116ZFCP_SYSFS_FAILED(zfcp_port, port, port->adapter, "sypfai1", "sypfai2");
117ZFCP_SYSFS_FAILED(zfcp_unit, unit, unit->port->adapter, 46, 97); 117ZFCP_SYSFS_FAILED(zfcp_unit, unit, unit->port->adapter, "syufai1", "syufai2");
118 118
119static ssize_t zfcp_sysfs_port_rescan_store(struct device *dev, 119static ssize_t zfcp_sysfs_port_rescan_store(struct device *dev,
120 struct device_attribute *attr, 120 struct device_attribute *attr,
@@ -168,7 +168,7 @@ static ssize_t zfcp_sysfs_port_remove_store(struct device *dev,
168 goto out; 168 goto out;
169 } 169 }
170 170
171 zfcp_erp_port_shutdown(port, 0, 92, NULL); 171 zfcp_erp_port_shutdown(port, 0, "syprs_1", NULL);
172 zfcp_erp_wait(adapter); 172 zfcp_erp_wait(adapter);
173 zfcp_port_put(port); 173 zfcp_port_put(port);
174 zfcp_port_dequeue(port); 174 zfcp_port_dequeue(port);
@@ -222,7 +222,7 @@ static ssize_t zfcp_sysfs_unit_add_store(struct device *dev,
222 222
223 retval = 0; 223 retval = 0;
224 224
225 zfcp_erp_unit_reopen(unit, 0, 94, NULL); 225 zfcp_erp_unit_reopen(unit, 0, "syuas_1", NULL);
226 zfcp_erp_wait(unit->port->adapter); 226 zfcp_erp_wait(unit->port->adapter);
227 zfcp_unit_put(unit); 227 zfcp_unit_put(unit);
228out: 228out:
@@ -268,7 +268,7 @@ static ssize_t zfcp_sysfs_unit_remove_store(struct device *dev,
268 goto out; 268 goto out;
269 } 269 }
270 270
271 zfcp_erp_unit_shutdown(unit, 0, 95, NULL); 271 zfcp_erp_unit_shutdown(unit, 0, "syurs_1", NULL);
272 zfcp_erp_wait(unit->port->adapter); 272 zfcp_erp_wait(unit->port->adapter);
273 zfcp_unit_put(unit); 273 zfcp_unit_put(unit);
274 zfcp_unit_dequeue(unit); 274 zfcp_unit_dequeue(unit);