aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi
diff options
context:
space:
mode:
authorChristof Schmitt <christof.schmitt@de.ibm.com>2008-10-01 06:42:15 -0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-10-03 13:11:52 -0400
commitff3b24fa5370a7ca618f212284d9b36fcedb9c0e (patch)
treed5631509c630046c9d0a42a4e949179976b0ef9f /drivers/s390/scsi
parent2450d3e7b8604d0abb042817f2502cb7ee0b782f (diff)
[SCSI] zfcp: Update message with input from review
Update the kernel messages in zfcp with input from the message review and remove some messages that have been identified as redundant. Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com> Signed-off-by: Swen Schillig <swen@vnet.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/s390/scsi')
-rw-r--r--drivers/s390/scsi/zfcp_aux.c8
-rw-r--r--drivers/s390/scsi/zfcp_ccw.c12
-rw-r--r--drivers/s390/scsi/zfcp_dbf.c2
-rw-r--r--drivers/s390/scsi/zfcp_erp.c50
-rw-r--r--drivers/s390/scsi/zfcp_fsf.c233
-rw-r--r--drivers/s390/scsi/zfcp_qdio.c26
-rw-r--r--drivers/s390/scsi/zfcp_scsi.c3
7 files changed, 127 insertions, 207 deletions
diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c
index 90abfd06ed55..a8c965b6f744 100644
--- a/drivers/s390/scsi/zfcp_aux.c
+++ b/drivers/s390/scsi/zfcp_aux.c
@@ -100,8 +100,7 @@ static int __init zfcp_device_setup(char *devstr)
100 100
101 err_out: 101 err_out:
102 kfree(str); 102 kfree(str);
103 pr_err("zfcp: Parse error for device parameter string %s, " 103 pr_err("zfcp: %s is not a valid SCSI device\n", devstr);
104 "device not attached.\n", devstr);
105 return 0; 104 return 0;
106} 105}
107 106
@@ -193,13 +192,14 @@ static int __init zfcp_module_init(void)
193 192
194 retval = misc_register(&zfcp_cfdc_misc); 193 retval = misc_register(&zfcp_cfdc_misc);
195 if (retval) { 194 if (retval) {
196 pr_err("zfcp: registration of misc device zfcp_cfdc failed\n"); 195 pr_err("zfcp: Registering the misc device zfcp_cfdc failed\n");
197 goto out_misc; 196 goto out_misc;
198 } 197 }
199 198
200 retval = zfcp_ccw_register(); 199 retval = zfcp_ccw_register();
201 if (retval) { 200 if (retval) {
202 pr_err("zfcp: Registration with common I/O layer failed.\n"); 201 pr_err("zfcp: The zfcp device driver could not register with "
202 "the common I/O layer\n");
203 goto out_ccw_register; 203 goto out_ccw_register;
204 } 204 }
205 205
diff --git a/drivers/s390/scsi/zfcp_ccw.c b/drivers/s390/scsi/zfcp_ccw.c
index 51b6a05f4d12..ef8bdfbb55f8 100644
--- a/drivers/s390/scsi/zfcp_ccw.c
+++ b/drivers/s390/scsi/zfcp_ccw.c
@@ -25,7 +25,8 @@ static int zfcp_ccw_probe(struct ccw_device *ccw_device)
25 down(&zfcp_data.config_sema); 25 down(&zfcp_data.config_sema);
26 if (zfcp_adapter_enqueue(ccw_device)) { 26 if (zfcp_adapter_enqueue(ccw_device)) {
27 dev_err(&ccw_device->dev, 27 dev_err(&ccw_device->dev,
28 "Setup of data structures failed.\n"); 28 "Setting up data structures for the "
29 "FCP adapter failed\n");
29 retval = -EINVAL; 30 retval = -EINVAL;
30 } 31 }
31 up(&zfcp_data.config_sema); 32 up(&zfcp_data.config_sema);
@@ -156,15 +157,18 @@ static int zfcp_ccw_notify(struct ccw_device *ccw_device, int event)
156 157
157 switch (event) { 158 switch (event) {
158 case CIO_GONE: 159 case CIO_GONE:
159 dev_warn(&adapter->ccw_device->dev, "device gone\n"); 160 dev_warn(&adapter->ccw_device->dev,
161 "The FCP device has been detached\n");
160 zfcp_erp_adapter_shutdown(adapter, 0, 87, NULL); 162 zfcp_erp_adapter_shutdown(adapter, 0, 87, NULL);
161 break; 163 break;
162 case CIO_NO_PATH: 164 case CIO_NO_PATH:
163 dev_warn(&adapter->ccw_device->dev, "no path\n"); 165 dev_warn(&adapter->ccw_device->dev,
166 "The CHPID for the FCP device is offline\n");
164 zfcp_erp_adapter_shutdown(adapter, 0, 88, NULL); 167 zfcp_erp_adapter_shutdown(adapter, 0, 88, NULL);
165 break; 168 break;
166 case CIO_OPER: 169 case CIO_OPER:
167 dev_info(&adapter->ccw_device->dev, "operational again\n"); 170 dev_info(&adapter->ccw_device->dev,
171 "The FCP device is operational again\n");
168 zfcp_erp_modify_adapter_status(adapter, 11, NULL, 172 zfcp_erp_modify_adapter_status(adapter, 11, NULL,
169 ZFCP_STATUS_COMMON_RUNNING, 173 ZFCP_STATUS_COMMON_RUNNING,
170 ZFCP_SET); 174 ZFCP_SET);
diff --git a/drivers/s390/scsi/zfcp_dbf.c b/drivers/s390/scsi/zfcp_dbf.c
index fca48b88fc53..91b1a364a24c 100644
--- a/drivers/s390/scsi/zfcp_dbf.c
+++ b/drivers/s390/scsi/zfcp_dbf.c
@@ -570,7 +570,7 @@ static const char *zfcp_rec_dbf_ids[] = {
570 [125] = "need newer zfcp", 570 [125] = "need newer zfcp",
571 [126] = "need newer microcode", 571 [126] = "need newer microcode",
572 [127] = "arbitrated loop not supported", 572 [127] = "arbitrated loop not supported",
573 [128] = "unknown topology", 573 [128] = "",
574 [129] = "qtcb size mismatch", 574 [129] = "qtcb size mismatch",
575 [130] = "unknown fsf status ecd", 575 [130] = "unknown fsf status ecd",
576 [131] = "fcp request too big", 576 [131] = "fcp request too big",
diff --git a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c
index 643ac4bba5b5..4dd8fe70c415 100644
--- a/drivers/s390/scsi/zfcp_erp.c
+++ b/drivers/s390/scsi/zfcp_erp.c
@@ -901,11 +901,6 @@ static int zfcp_erp_open_ptp_port(struct zfcp_erp_action *act)
901 struct zfcp_port *port = act->port; 901 struct zfcp_port *port = act->port;
902 902
903 if (port->wwpn != adapter->peer_wwpn) { 903 if (port->wwpn != adapter->peer_wwpn) {
904 dev_err(&adapter->ccw_device->dev,
905 "Failed to open port 0x%016Lx, "
906 "Peer WWPN 0x%016Lx does not "
907 "match.\n", port->wwpn,
908 adapter->peer_wwpn);
909 zfcp_erp_port_failed(port, 25, NULL); 904 zfcp_erp_port_failed(port, 25, NULL);
910 return ZFCP_ERP_FAILED; 905 return ZFCP_ERP_FAILED;
911 } 906 }
@@ -929,7 +924,8 @@ static int zfcp_erp_port_strategy_open_common(struct zfcp_erp_action *act)
929 return zfcp_erp_open_ptp_port(act); 924 return zfcp_erp_open_ptp_port(act);
930 if (!ns_port) { 925 if (!ns_port) {
931 dev_err(&adapter->ccw_device->dev, 926 dev_err(&adapter->ccw_device->dev,
932 "Nameserver port unavailable.\n"); 927 "Attaching the name server port to the "
928 "FCP device failed\n");
933 return ZFCP_ERP_FAILED; 929 return ZFCP_ERP_FAILED;
934 } 930 }
935 if (!(atomic_read(&ns_port->status) & 931 if (!(atomic_read(&ns_port->status) &
@@ -1065,8 +1061,13 @@ static int zfcp_erp_strategy_check_unit(struct zfcp_unit *unit, int result)
1065 break; 1061 break;
1066 case ZFCP_ERP_FAILED : 1062 case ZFCP_ERP_FAILED :
1067 atomic_inc(&unit->erp_counter); 1063 atomic_inc(&unit->erp_counter);
1068 if (atomic_read(&unit->erp_counter) > ZFCP_MAX_ERPS) 1064 if (atomic_read(&unit->erp_counter) > ZFCP_MAX_ERPS) {
1065 dev_err(&unit->port->adapter->ccw_device->dev,
1066 "ERP failed for unit 0x%016Lx on "
1067 "port 0x%016Lx\n",
1068 unit->fcp_lun, unit->port->wwpn);
1069 zfcp_erp_unit_failed(unit, 21, NULL); 1069 zfcp_erp_unit_failed(unit, 21, NULL);
1070 }
1070 break; 1071 break;
1071 } 1072 }
1072 1073
@@ -1091,8 +1092,12 @@ static int zfcp_erp_strategy_check_port(struct zfcp_port *port, int result)
1091 result = ZFCP_ERP_EXIT; 1092 result = ZFCP_ERP_EXIT;
1092 } 1093 }
1093 atomic_inc(&port->erp_counter); 1094 atomic_inc(&port->erp_counter);
1094 if (atomic_read(&port->erp_counter) > ZFCP_MAX_ERPS) 1095 if (atomic_read(&port->erp_counter) > ZFCP_MAX_ERPS) {
1096 dev_err(&port->adapter->ccw_device->dev,
1097 "ERP failed for remote port 0x%016Lx\n",
1098 port->wwpn);
1095 zfcp_erp_port_failed(port, 22, NULL); 1099 zfcp_erp_port_failed(port, 22, NULL);
1100 }
1096 break; 1101 break;
1097 } 1102 }
1098 1103
@@ -1114,8 +1119,12 @@ static int zfcp_erp_strategy_check_adapter(struct zfcp_adapter *adapter,
1114 1119
1115 case ZFCP_ERP_FAILED : 1120 case ZFCP_ERP_FAILED :
1116 atomic_inc(&adapter->erp_counter); 1121 atomic_inc(&adapter->erp_counter);
1117 if (atomic_read(&adapter->erp_counter) > ZFCP_MAX_ERPS) 1122 if (atomic_read(&adapter->erp_counter) > ZFCP_MAX_ERPS) {
1123 dev_err(&adapter->ccw_device->dev,
1124 "ERP cannot recover an error "
1125 "on the FCP device\n");
1118 zfcp_erp_adapter_failed(adapter, 23, NULL); 1126 zfcp_erp_adapter_failed(adapter, 23, NULL);
1127 }
1119 break; 1128 break;
1120 } 1129 }
1121 1130
@@ -1263,8 +1272,7 @@ static void zfcp_erp_schedule_work(struct zfcp_unit *unit)
1263 p = kzalloc(sizeof(*p), GFP_KERNEL); 1272 p = kzalloc(sizeof(*p), GFP_KERNEL);
1264 if (!p) { 1273 if (!p) {
1265 dev_err(&unit->port->adapter->ccw_device->dev, 1274 dev_err(&unit->port->adapter->ccw_device->dev,
1266 "Out of resources. Could not register unit " 1275 "Registering unit 0x%016Lx on port 0x%016Lx failed\n",
1267 "0x%016Lx on port 0x%016Lx with SCSI stack.\n",
1268 unit->fcp_lun, unit->port->wwpn); 1276 unit->fcp_lun, unit->port->wwpn);
1269 return; 1277 return;
1270 } 1278 }
@@ -1286,8 +1294,8 @@ static void zfcp_erp_rport_register(struct zfcp_port *port)
1286 port->rport = fc_remote_port_add(port->adapter->scsi_host, 0, &ids); 1294 port->rport = fc_remote_port_add(port->adapter->scsi_host, 0, &ids);
1287 if (!port->rport) { 1295 if (!port->rport) {
1288 dev_err(&port->adapter->ccw_device->dev, 1296 dev_err(&port->adapter->ccw_device->dev,
1289 "Failed registration of rport " 1297 "Registering port 0x%016Lx failed\n",
1290 "0x%016Lx.\n", port->wwpn); 1298 port->wwpn);
1291 return; 1299 return;
1292 } 1300 }
1293 1301
@@ -1484,7 +1492,7 @@ int zfcp_erp_thread_setup(struct zfcp_adapter *adapter)
1484 retval = kernel_thread(zfcp_erp_thread, adapter, SIGCHLD); 1492 retval = kernel_thread(zfcp_erp_thread, adapter, SIGCHLD);
1485 if (retval < 0) { 1493 if (retval < 0) {
1486 dev_err(&adapter->ccw_device->dev, 1494 dev_err(&adapter->ccw_device->dev,
1487 "Creation of ERP thread failed.\n"); 1495 "Creating an ERP thread for the FCP device failed.\n");
1488 return retval; 1496 return retval;
1489 } 1497 }
1490 wait_event(adapter->erp_thread_wqh, 1498 wait_event(adapter->erp_thread_wqh,
@@ -1526,7 +1534,6 @@ void zfcp_erp_adapter_failed(struct zfcp_adapter *adapter, u8 id, void *ref)
1526{ 1534{
1527 zfcp_erp_modify_adapter_status(adapter, id, ref, 1535 zfcp_erp_modify_adapter_status(adapter, id, ref,
1528 ZFCP_STATUS_COMMON_ERP_FAILED, ZFCP_SET); 1536 ZFCP_STATUS_COMMON_ERP_FAILED, ZFCP_SET);
1529 dev_err(&adapter->ccw_device->dev, "Adapter ERP failed.\n");
1530} 1537}
1531 1538
1532/** 1539/**
@@ -1539,15 +1546,6 @@ void zfcp_erp_port_failed(struct zfcp_port *port, u8 id, void *ref)
1539{ 1546{
1540 zfcp_erp_modify_port_status(port, id, ref, 1547 zfcp_erp_modify_port_status(port, id, ref,
1541 ZFCP_STATUS_COMMON_ERP_FAILED, ZFCP_SET); 1548 ZFCP_STATUS_COMMON_ERP_FAILED, ZFCP_SET);
1542
1543 if (atomic_read(&port->status) & ZFCP_STATUS_PORT_WKA)
1544 dev_err(&port->adapter->ccw_device->dev,
1545 "Port ERP failed for WKA port d_id=0x%06x.\n",
1546 port->d_id);
1547 else
1548 dev_err(&port->adapter->ccw_device->dev,
1549 "Port ERP failed for port wwpn=0x%016Lx.\n",
1550 port->wwpn);
1551} 1549}
1552 1550
1553/** 1551/**
@@ -1560,10 +1558,6 @@ void zfcp_erp_unit_failed(struct zfcp_unit *unit, u8 id, void *ref)
1560{ 1558{
1561 zfcp_erp_modify_unit_status(unit, id, ref, 1559 zfcp_erp_modify_unit_status(unit, id, ref,
1562 ZFCP_STATUS_COMMON_ERP_FAILED, ZFCP_SET); 1560 ZFCP_STATUS_COMMON_ERP_FAILED, ZFCP_SET);
1563
1564 dev_err(&unit->port->adapter->ccw_device->dev,
1565 "Unit ERP failed for unit 0x%016Lx on port 0x%016Lx.\n",
1566 unit->fcp_lun, unit->port->wwpn);
1567} 1561}
1568 1562
1569/** 1563/**
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c
index 9e083a5e2c4e..489a1896499e 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -50,19 +50,16 @@ static u32 fsf_qtcb_type[] = {
50 [FSF_QTCB_UPLOAD_CONTROL_FILE] = FSF_SUPPORT_COMMAND 50 [FSF_QTCB_UPLOAD_CONTROL_FILE] = FSF_SUPPORT_COMMAND
51}; 51};
52 52
53static const char *zfcp_act_subtable_type[] = {
54 "unknown", "OS", "WWPN", "DID", "LUN"
55};
56
57static void zfcp_act_eval_err(struct zfcp_adapter *adapter, u32 table) 53static void zfcp_act_eval_err(struct zfcp_adapter *adapter, u32 table)
58{ 54{
59 u16 subtable = table >> 16; 55 u16 subtable = table >> 16;
60 u16 rule = table & 0xffff; 56 u16 rule = table & 0xffff;
57 const char *act_type[] = { "unknown", "OS", "WWPN", "DID", "LUN" };
61 58
62 if (subtable && subtable < ARRAY_SIZE(zfcp_act_subtable_type)) 59 if (subtable && subtable < ARRAY_SIZE(act_type))
63 dev_warn(&adapter->ccw_device->dev, 60 dev_warn(&adapter->ccw_device->dev,
64 "Access denied in subtable %s, rule %d.\n", 61 "Access denied according to ACT rule type %s, "
65 zfcp_act_subtable_type[subtable], rule); 62 "rule %d\n", act_type[subtable], rule);
66} 63}
67 64
68static void zfcp_fsf_access_denied_port(struct zfcp_fsf_req *req, 65static void zfcp_fsf_access_denied_port(struct zfcp_fsf_req *req,
@@ -70,7 +67,7 @@ static void zfcp_fsf_access_denied_port(struct zfcp_fsf_req *req,
70{ 67{
71 struct fsf_qtcb_header *header = &req->qtcb->header; 68 struct fsf_qtcb_header *header = &req->qtcb->header;
72 dev_warn(&req->adapter->ccw_device->dev, 69 dev_warn(&req->adapter->ccw_device->dev,
73 "Access denied, cannot send command to port 0x%016Lx.\n", 70 "Access denied to port 0x%016Lx\n",
74 port->wwpn); 71 port->wwpn);
75 zfcp_act_eval_err(req->adapter, header->fsf_status_qual.halfword[0]); 72 zfcp_act_eval_err(req->adapter, header->fsf_status_qual.halfword[0]);
76 zfcp_act_eval_err(req->adapter, header->fsf_status_qual.halfword[1]); 73 zfcp_act_eval_err(req->adapter, header->fsf_status_qual.halfword[1]);
@@ -83,7 +80,7 @@ static void zfcp_fsf_access_denied_unit(struct zfcp_fsf_req *req,
83{ 80{
84 struct fsf_qtcb_header *header = &req->qtcb->header; 81 struct fsf_qtcb_header *header = &req->qtcb->header;
85 dev_warn(&req->adapter->ccw_device->dev, 82 dev_warn(&req->adapter->ccw_device->dev,
86 "Access denied for unit 0x%016Lx on port 0x%016Lx.\n", 83 "Access denied to unit 0x%016Lx on port 0x%016Lx\n",
87 unit->fcp_lun, unit->port->wwpn); 84 unit->fcp_lun, unit->port->wwpn);
88 zfcp_act_eval_err(req->adapter, header->fsf_status_qual.halfword[0]); 85 zfcp_act_eval_err(req->adapter, header->fsf_status_qual.halfword[0]);
89 zfcp_act_eval_err(req->adapter, header->fsf_status_qual.halfword[1]); 86 zfcp_act_eval_err(req->adapter, header->fsf_status_qual.halfword[1]);
@@ -93,9 +90,8 @@ static void zfcp_fsf_access_denied_unit(struct zfcp_fsf_req *req,
93 90
94static void zfcp_fsf_class_not_supp(struct zfcp_fsf_req *req) 91static void zfcp_fsf_class_not_supp(struct zfcp_fsf_req *req)
95{ 92{
96 dev_err(&req->adapter->ccw_device->dev, 93 dev_err(&req->adapter->ccw_device->dev, "FCP device not "
97 "Required FC class not supported by adapter, " 94 "operational because of an unsupported FC class\n");
98 "shutting down adapter.\n");
99 zfcp_erp_adapter_shutdown(req->adapter, 0, 123, req); 95 zfcp_erp_adapter_shutdown(req->adapter, 0, 123, req);
100 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 96 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
101} 97}
@@ -171,42 +167,6 @@ static void zfcp_fsf_status_read_port_closed(struct zfcp_fsf_req *req)
171 read_unlock_irqrestore(&zfcp_data.config_lock, flags); 167 read_unlock_irqrestore(&zfcp_data.config_lock, flags);
172} 168}
173 169
174static void zfcp_fsf_bit_error_threshold(struct zfcp_fsf_req *req)
175{
176 struct zfcp_adapter *adapter = req->adapter;
177 struct fsf_status_read_buffer *sr_buf = req->data;
178 struct fsf_bit_error_payload *err = &sr_buf->payload.bit_error;
179
180 dev_warn(&adapter->ccw_device->dev,
181 "Warning: bit error threshold data "
182 "received for the adapter: "
183 "link failures = %i, loss of sync errors = %i, "
184 "loss of signal errors = %i, "
185 "primitive sequence errors = %i, "
186 "invalid transmission word errors = %i, "
187 "CRC errors = %i).\n",
188 err->link_failure_error_count,
189 err->loss_of_sync_error_count,
190 err->loss_of_signal_error_count,
191 err->primitive_sequence_error_count,
192 err->invalid_transmission_word_error_count,
193 err->crc_error_count);
194 dev_warn(&adapter->ccw_device->dev,
195 "Additional bit error threshold data of the adapter: "
196 "primitive sequence event time-outs = %i, "
197 "elastic buffer overrun errors = %i, "
198 "advertised receive buffer-to-buffer credit = %i, "
199 "current receice buffer-to-buffer credit = %i, "
200 "advertised transmit buffer-to-buffer credit = %i, "
201 "current transmit buffer-to-buffer credit = %i).\n",
202 err->primitive_sequence_event_timeout_count,
203 err->elastic_buffer_overrun_error_count,
204 err->advertised_receive_b2b_credit,
205 err->current_receive_b2b_credit,
206 err->advertised_transmit_b2b_credit,
207 err->current_transmit_b2b_credit);
208}
209
210static void zfcp_fsf_link_down_info_eval(struct zfcp_fsf_req *req, u8 id, 170static void zfcp_fsf_link_down_info_eval(struct zfcp_fsf_req *req, u8 id,
211 struct fsf_link_down_info *link_down) 171 struct fsf_link_down_info *link_down)
212{ 172{
@@ -223,62 +183,66 @@ static void zfcp_fsf_link_down_info_eval(struct zfcp_fsf_req *req, u8 id,
223 switch (link_down->error_code) { 183 switch (link_down->error_code) {
224 case FSF_PSQ_LINK_NO_LIGHT: 184 case FSF_PSQ_LINK_NO_LIGHT:
225 dev_warn(&req->adapter->ccw_device->dev, 185 dev_warn(&req->adapter->ccw_device->dev,
226 "The local link is down: no light detected.\n"); 186 "There is no light signal from the local "
187 "fibre channel cable\n");
227 break; 188 break;
228 case FSF_PSQ_LINK_WRAP_PLUG: 189 case FSF_PSQ_LINK_WRAP_PLUG:
229 dev_warn(&req->adapter->ccw_device->dev, 190 dev_warn(&req->adapter->ccw_device->dev,
230 "The local link is down: wrap plug detected.\n"); 191 "There is a wrap plug instead of a fibre "
192 "channel cable\n");
231 break; 193 break;
232 case FSF_PSQ_LINK_NO_FCP: 194 case FSF_PSQ_LINK_NO_FCP:
233 dev_warn(&req->adapter->ccw_device->dev, 195 dev_warn(&req->adapter->ccw_device->dev,
234 "The local link is down: " 196 "The adjacent fibre channel node does not "
235 "adjacent node on link does not support FCP.\n"); 197 "support FCP\n");
236 break; 198 break;
237 case FSF_PSQ_LINK_FIRMWARE_UPDATE: 199 case FSF_PSQ_LINK_FIRMWARE_UPDATE:
238 dev_warn(&req->adapter->ccw_device->dev, 200 dev_warn(&req->adapter->ccw_device->dev,
239 "The local link is down: " 201 "The FCP device is suspended because of a "
240 "firmware update in progress.\n"); 202 "firmware update\n");
241 break; 203 break;
242 case FSF_PSQ_LINK_INVALID_WWPN: 204 case FSF_PSQ_LINK_INVALID_WWPN:
243 dev_warn(&req->adapter->ccw_device->dev, 205 dev_warn(&req->adapter->ccw_device->dev,
244 "The local link is down: " 206 "The FCP device detected a WWPN that is "
245 "duplicate or invalid WWPN detected.\n"); 207 "duplicate or not valid\n");
246 break; 208 break;
247 case FSF_PSQ_LINK_NO_NPIV_SUPPORT: 209 case FSF_PSQ_LINK_NO_NPIV_SUPPORT:
248 dev_warn(&req->adapter->ccw_device->dev, 210 dev_warn(&req->adapter->ccw_device->dev,
249 "The local link is down: " 211 "The fibre channel fabric does not support NPIV\n");
250 "no support for NPIV by Fabric.\n");
251 break; 212 break;
252 case FSF_PSQ_LINK_NO_FCP_RESOURCES: 213 case FSF_PSQ_LINK_NO_FCP_RESOURCES:
253 dev_warn(&req->adapter->ccw_device->dev, 214 dev_warn(&req->adapter->ccw_device->dev,
254 "The local link is down: " 215 "The FCP adapter cannot support more NPIV ports\n");
255 "out of resource in FCP daughtercard.\n");
256 break; 216 break;
257 case FSF_PSQ_LINK_NO_FABRIC_RESOURCES: 217 case FSF_PSQ_LINK_NO_FABRIC_RESOURCES:
258 dev_warn(&req->adapter->ccw_device->dev, 218 dev_warn(&req->adapter->ccw_device->dev,
259 "The local link is down: " 219 "The adjacent switch cannot support "
260 "out of resource in Fabric.\n"); 220 "more NPIV ports\n");
261 break; 221 break;
262 case FSF_PSQ_LINK_FABRIC_LOGIN_UNABLE: 222 case FSF_PSQ_LINK_FABRIC_LOGIN_UNABLE:
263 dev_warn(&req->adapter->ccw_device->dev, 223 dev_warn(&req->adapter->ccw_device->dev,
264 "The local link is down: " 224 "The FCP adapter could not log in to the "
265 "unable to login to Fabric.\n"); 225 "fibre channel fabric\n");
266 break; 226 break;
267 case FSF_PSQ_LINK_WWPN_ASSIGNMENT_CORRUPTED: 227 case FSF_PSQ_LINK_WWPN_ASSIGNMENT_CORRUPTED:
268 dev_warn(&req->adapter->ccw_device->dev, 228 dev_warn(&req->adapter->ccw_device->dev,
269 "WWPN assignment file corrupted on adapter.\n"); 229 "The WWPN assignment file on the FCP adapter "
230 "has been damaged\n");
270 break; 231 break;
271 case FSF_PSQ_LINK_MODE_TABLE_CURRUPTED: 232 case FSF_PSQ_LINK_MODE_TABLE_CURRUPTED:
272 dev_warn(&req->adapter->ccw_device->dev, 233 dev_warn(&req->adapter->ccw_device->dev,
273 "Mode table corrupted on adapter.\n"); 234 "The mode table on the FCP adapter "
235 "has been damaged\n");
274 break; 236 break;
275 case FSF_PSQ_LINK_NO_WWPN_ASSIGNMENT: 237 case FSF_PSQ_LINK_NO_WWPN_ASSIGNMENT:
276 dev_warn(&req->adapter->ccw_device->dev, 238 dev_warn(&req->adapter->ccw_device->dev,
277 "No WWPN for assignment table on adapter.\n"); 239 "All NPIV ports on the FCP adapter have "
240 "been assigned\n");
278 break; 241 break;
279 default: 242 default:
280 dev_warn(&req->adapter->ccw_device->dev, 243 dev_warn(&req->adapter->ccw_device->dev,
281 "The local link to adapter is down.\n"); 244 "The link between the FCP adapter and "
245 "the FC fabric is down\n");
282 } 246 }
283out: 247out:
284 zfcp_erp_adapter_failed(adapter, id, req); 248 zfcp_erp_adapter_failed(adapter, id, req);
@@ -286,27 +250,18 @@ out:
286 250
287static void zfcp_fsf_status_read_link_down(struct zfcp_fsf_req *req) 251static void zfcp_fsf_status_read_link_down(struct zfcp_fsf_req *req)
288{ 252{
289 struct zfcp_adapter *adapter = req->adapter;
290 struct fsf_status_read_buffer *sr_buf = req->data; 253 struct fsf_status_read_buffer *sr_buf = req->data;
291 struct fsf_link_down_info *ldi = 254 struct fsf_link_down_info *ldi =
292 (struct fsf_link_down_info *) &sr_buf->payload; 255 (struct fsf_link_down_info *) &sr_buf->payload;
293 256
294 switch (sr_buf->status_subtype) { 257 switch (sr_buf->status_subtype) {
295 case FSF_STATUS_READ_SUB_NO_PHYSICAL_LINK: 258 case FSF_STATUS_READ_SUB_NO_PHYSICAL_LINK:
296 dev_warn(&adapter->ccw_device->dev,
297 "Physical link is down.\n");
298 zfcp_fsf_link_down_info_eval(req, 38, ldi); 259 zfcp_fsf_link_down_info_eval(req, 38, ldi);
299 break; 260 break;
300 case FSF_STATUS_READ_SUB_FDISC_FAILED: 261 case FSF_STATUS_READ_SUB_FDISC_FAILED:
301 dev_warn(&adapter->ccw_device->dev,
302 "Local link is down "
303 "due to failed FDISC login.\n");
304 zfcp_fsf_link_down_info_eval(req, 39, ldi); 262 zfcp_fsf_link_down_info_eval(req, 39, ldi);
305 break; 263 break;
306 case FSF_STATUS_READ_SUB_FIRMWARE_UPDATE: 264 case FSF_STATUS_READ_SUB_FIRMWARE_UPDATE:
307 dev_warn(&adapter->ccw_device->dev,
308 "Local link is down "
309 "due to firmware update on adapter.\n");
310 zfcp_fsf_link_down_info_eval(req, 40, NULL); 265 zfcp_fsf_link_down_info_eval(req, 40, NULL);
311 }; 266 };
312} 267}
@@ -335,14 +290,16 @@ static void zfcp_fsf_status_read_handler(struct zfcp_fsf_req *req)
335 case FSF_STATUS_READ_SENSE_DATA_AVAIL: 290 case FSF_STATUS_READ_SENSE_DATA_AVAIL:
336 break; 291 break;
337 case FSF_STATUS_READ_BIT_ERROR_THRESHOLD: 292 case FSF_STATUS_READ_BIT_ERROR_THRESHOLD:
338 zfcp_fsf_bit_error_threshold(req); 293 dev_warn(&adapter->ccw_device->dev,
294 "The error threshold for checksum statistics "
295 "has been exceeded\n");
339 break; 296 break;
340 case FSF_STATUS_READ_LINK_DOWN: 297 case FSF_STATUS_READ_LINK_DOWN:
341 zfcp_fsf_status_read_link_down(req); 298 zfcp_fsf_status_read_link_down(req);
342 break; 299 break;
343 case FSF_STATUS_READ_LINK_UP: 300 case FSF_STATUS_READ_LINK_UP:
344 dev_info(&adapter->ccw_device->dev, 301 dev_info(&adapter->ccw_device->dev,
345 "Local link was replugged.\n"); 302 "The local link has been restored\n");
346 /* All ports should be marked as ready to run again */ 303 /* All ports should be marked as ready to run again */
347 zfcp_erp_modify_adapter_status(adapter, 30, NULL, 304 zfcp_erp_modify_adapter_status(adapter, 30, NULL,
348 ZFCP_STATUS_COMMON_RUNNING, 305 ZFCP_STATUS_COMMON_RUNNING,
@@ -386,8 +343,8 @@ static void zfcp_fsf_fsfstatus_qual_eval(struct zfcp_fsf_req *req)
386 break; 343 break;
387 case FSF_SQ_NO_RECOM: 344 case FSF_SQ_NO_RECOM:
388 dev_err(&req->adapter->ccw_device->dev, 345 dev_err(&req->adapter->ccw_device->dev,
389 "No recommendation could be given for a " 346 "The FCP adapter reported a problem "
390 "problem on the adapter.\n"); 347 "that cannot be recovered\n");
391 zfcp_erp_adapter_shutdown(req->adapter, 0, 121, req); 348 zfcp_erp_adapter_shutdown(req->adapter, 0, 121, req);
392 break; 349 break;
393 } 350 }
@@ -403,8 +360,7 @@ static void zfcp_fsf_fsfstatus_eval(struct zfcp_fsf_req *req)
403 switch (req->qtcb->header.fsf_status) { 360 switch (req->qtcb->header.fsf_status) {
404 case FSF_UNKNOWN_COMMAND: 361 case FSF_UNKNOWN_COMMAND:
405 dev_err(&req->adapter->ccw_device->dev, 362 dev_err(&req->adapter->ccw_device->dev,
406 "Command issued by the device driver (0x%x) is " 363 "The FCP adapter does not recognize the command 0x%x\n",
407 "not known by the adapter.\n",
408 req->qtcb->header.fsf_command); 364 req->qtcb->header.fsf_command);
409 zfcp_erp_adapter_shutdown(req->adapter, 0, 120, req); 365 zfcp_erp_adapter_shutdown(req->adapter, 0, 120, req);
410 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 366 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
@@ -435,11 +391,9 @@ static void zfcp_fsf_protstatus_eval(struct zfcp_fsf_req *req)
435 return; 391 return;
436 case FSF_PROT_QTCB_VERSION_ERROR: 392 case FSF_PROT_QTCB_VERSION_ERROR:
437 dev_err(&adapter->ccw_device->dev, 393 dev_err(&adapter->ccw_device->dev,
438 "The QTCB version requested by zfcp (0x%x) is not " 394 "QTCB version 0x%x not supported by FCP adapter "
439 "supported by the FCP adapter (lowest supported " 395 "(0x%x to 0x%x)\n", FSF_QTCB_CURRENT_VERSION,
440 "0x%x, highest supported 0x%x).\n", 396 psq->word[0], psq->word[1]);
441 FSF_QTCB_CURRENT_VERSION, psq->word[0],
442 psq->word[1]);
443 zfcp_erp_adapter_shutdown(adapter, 0, 117, req); 397 zfcp_erp_adapter_shutdown(adapter, 0, 117, req);
444 break; 398 break;
445 case FSF_PROT_ERROR_STATE: 399 case FSF_PROT_ERROR_STATE:
@@ -449,8 +403,7 @@ static void zfcp_fsf_protstatus_eval(struct zfcp_fsf_req *req)
449 break; 403 break;
450 case FSF_PROT_UNSUPP_QTCB_TYPE: 404 case FSF_PROT_UNSUPP_QTCB_TYPE:
451 dev_err(&adapter->ccw_device->dev, 405 dev_err(&adapter->ccw_device->dev,
452 "Packet header type used by the device driver is " 406 "The QTCB type is not supported by the FCP adapter\n");
453 "incompatible with that used on the adapter.\n");
454 zfcp_erp_adapter_shutdown(adapter, 0, 118, req); 407 zfcp_erp_adapter_shutdown(adapter, 0, 118, req);
455 break; 408 break;
456 case FSF_PROT_HOST_CONNECTION_INITIALIZING: 409 case FSF_PROT_HOST_CONNECTION_INITIALIZING:
@@ -459,7 +412,7 @@ static void zfcp_fsf_protstatus_eval(struct zfcp_fsf_req *req)
459 break; 412 break;
460 case FSF_PROT_DUPLICATE_REQUEST_ID: 413 case FSF_PROT_DUPLICATE_REQUEST_ID:
461 dev_err(&adapter->ccw_device->dev, 414 dev_err(&adapter->ccw_device->dev,
462 "The request identifier 0x%Lx is ambiguous.\n", 415 "0x%Lx is an ambiguous request identifier\n",
463 (unsigned long long)qtcb->bottom.support.req_handle); 416 (unsigned long long)qtcb->bottom.support.req_handle);
464 zfcp_erp_adapter_shutdown(adapter, 0, 78, req); 417 zfcp_erp_adapter_shutdown(adapter, 0, 78, req);
465 break; 418 break;
@@ -479,9 +432,7 @@ static void zfcp_fsf_protstatus_eval(struct zfcp_fsf_req *req)
479 break; 432 break;
480 default: 433 default:
481 dev_err(&adapter->ccw_device->dev, 434 dev_err(&adapter->ccw_device->dev,
482 "Transfer protocol status information" 435 "0x%x is not a valid transfer protocol status\n",
483 "provided by the adapter (0x%x) "
484 "is not compatible with the device driver.\n",
485 qtcb->prefix.prot_status); 436 qtcb->prefix.prot_status);
486 zfcp_erp_adapter_shutdown(adapter, 0, 119, req); 437 zfcp_erp_adapter_shutdown(adapter, 0, 119, req);
487 } 438 }
@@ -559,33 +510,17 @@ static int zfcp_fsf_exchange_config_evaluate(struct zfcp_fsf_req *req)
559 adapter->peer_wwpn = bottom->plogi_payload.wwpn; 510 adapter->peer_wwpn = bottom->plogi_payload.wwpn;
560 adapter->peer_wwnn = bottom->plogi_payload.wwnn; 511 adapter->peer_wwnn = bottom->plogi_payload.wwnn;
561 fc_host_port_type(shost) = FC_PORTTYPE_PTP; 512 fc_host_port_type(shost) = FC_PORTTYPE_PTP;
562 if (req->erp_action)
563 dev_info(&adapter->ccw_device->dev,
564 "Point-to-Point fibrechannel "
565 "configuration detected.\n");
566 break; 513 break;
567 case FSF_TOPO_FABRIC: 514 case FSF_TOPO_FABRIC:
568 fc_host_port_type(shost) = FC_PORTTYPE_NPORT; 515 fc_host_port_type(shost) = FC_PORTTYPE_NPORT;
569 if (req->erp_action)
570 dev_info(&adapter->ccw_device->dev,
571 "Switched fabric fibrechannel "
572 "network detected.\n");
573 break; 516 break;
574 case FSF_TOPO_AL: 517 case FSF_TOPO_AL:
575 fc_host_port_type(shost) = FC_PORTTYPE_NLPORT; 518 fc_host_port_type(shost) = FC_PORTTYPE_NLPORT;
576 dev_err(&adapter->ccw_device->dev,
577 "Unsupported arbitrated loop fibrechannel "
578 "topology detected, shutting down "
579 "adapter.\n");
580 zfcp_erp_adapter_shutdown(adapter, 0, 127, req);
581 return -EIO;
582 default: 519 default:
583 fc_host_port_type(shost) = FC_PORTTYPE_UNKNOWN;
584 dev_err(&adapter->ccw_device->dev, 520 dev_err(&adapter->ccw_device->dev,
585 "The fibrechannel topology reported by the" 521 "Unknown or unsupported arbitrated loop "
586 " adapter is not known by the zfcp driver," 522 "fibre channel topology detected\n");
587 " shutting down adapter.\n"); 523 zfcp_erp_adapter_shutdown(adapter, 0, 127, req);
588 zfcp_erp_adapter_shutdown(adapter, 0, 128, req);
589 return -EIO; 524 return -EIO;
590 } 525 }
591 526
@@ -616,11 +551,9 @@ static void zfcp_fsf_exchange_config_data_handler(struct zfcp_fsf_req *req)
616 551
617 if (bottom->max_qtcb_size < sizeof(struct fsf_qtcb)) { 552 if (bottom->max_qtcb_size < sizeof(struct fsf_qtcb)) {
618 dev_err(&adapter->ccw_device->dev, 553 dev_err(&adapter->ccw_device->dev,
619 "Maximum QTCB size (%d bytes) allowed by " 554 "FCP adapter maximum QTCB size (%d bytes) "
620 "the adapter is lower than the minimum " 555 "is too small\n",
621 "required by the driver (%ld bytes).\n", 556 bottom->max_qtcb_size);
622 bottom->max_qtcb_size,
623 sizeof(struct fsf_qtcb));
624 zfcp_erp_adapter_shutdown(adapter, 0, 129, req); 557 zfcp_erp_adapter_shutdown(adapter, 0, 129, req);
625 return; 558 return;
626 } 559 }
@@ -656,15 +589,15 @@ static void zfcp_fsf_exchange_config_data_handler(struct zfcp_fsf_req *req)
656 589
657 if (FSF_QTCB_CURRENT_VERSION < bottom->low_qtcb_version) { 590 if (FSF_QTCB_CURRENT_VERSION < bottom->low_qtcb_version) {
658 dev_err(&adapter->ccw_device->dev, 591 dev_err(&adapter->ccw_device->dev,
659 "The adapter only supports newer control block " 592 "The FCP adapter only supports newer "
660 "versions, try updated device driver.\n"); 593 "control block versions\n");
661 zfcp_erp_adapter_shutdown(adapter, 0, 125, req); 594 zfcp_erp_adapter_shutdown(adapter, 0, 125, req);
662 return; 595 return;
663 } 596 }
664 if (FSF_QTCB_CURRENT_VERSION > bottom->high_qtcb_version) { 597 if (FSF_QTCB_CURRENT_VERSION > bottom->high_qtcb_version) {
665 dev_err(&adapter->ccw_device->dev, 598 dev_err(&adapter->ccw_device->dev,
666 "The adapter only supports older control block " 599 "The FCP adapter only supports older "
667 "versions, consider a microcode upgrade.\n"); 600 "control block versions\n");
668 zfcp_erp_adapter_shutdown(adapter, 0, 126, req); 601 zfcp_erp_adapter_shutdown(adapter, 0, 126, req);
669 } 602 }
670} 603}
@@ -1463,9 +1396,8 @@ static void zfcp_fsf_open_port_handler(struct zfcp_fsf_req *req)
1463 break; 1396 break;
1464 case FSF_MAXIMUM_NUMBER_OF_PORTS_EXCEEDED: 1397 case FSF_MAXIMUM_NUMBER_OF_PORTS_EXCEEDED:
1465 dev_warn(&req->adapter->ccw_device->dev, 1398 dev_warn(&req->adapter->ccw_device->dev,
1466 "The adapter is out of resources. The remote port " 1399 "Not enough FCP adapter resources to open "
1467 "0x%016Lx could not be opened, disabling it.\n", 1400 "remote port 0x%016Lx\n", port->wwpn);
1468 port->wwpn);
1469 zfcp_erp_port_failed(port, 31, req); 1401 zfcp_erp_port_failed(port, 31, req);
1470 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 1402 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
1471 break; 1403 break;
@@ -1477,8 +1409,8 @@ static void zfcp_fsf_open_port_handler(struct zfcp_fsf_req *req)
1477 break; 1409 break;
1478 case FSF_SQ_NO_RETRY_POSSIBLE: 1410 case FSF_SQ_NO_RETRY_POSSIBLE:
1479 dev_warn(&req->adapter->ccw_device->dev, 1411 dev_warn(&req->adapter->ccw_device->dev,
1480 "The remote port 0x%016Lx could not be " 1412 "Remote port 0x%016Lx could not be opened\n",
1481 "opened. Disabling it.\n", port->wwpn); 1413 port->wwpn);
1482 zfcp_erp_port_failed(port, 32, req); 1414 zfcp_erp_port_failed(port, 32, req);
1483 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 1415 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
1484 break; 1416 break;
@@ -1784,14 +1716,12 @@ static void zfcp_fsf_open_unit_handler(struct zfcp_fsf_req *req)
1784 case FSF_LUN_SHARING_VIOLATION: 1716 case FSF_LUN_SHARING_VIOLATION:
1785 if (header->fsf_status_qual.word[0]) 1717 if (header->fsf_status_qual.word[0])
1786 dev_warn(&adapter->ccw_device->dev, 1718 dev_warn(&adapter->ccw_device->dev,
1787 "FCP-LUN 0x%Lx at the remote port " 1719 "LUN 0x%Lx on port 0x%Lx is already in "
1788 "with WWPN 0x%Lx " 1720 "use by CSS%d, MIF Image ID %x\n",
1789 "connected to the adapter "
1790 "is already in use in LPAR%d, CSS%d.\n",
1791 unit->fcp_lun, 1721 unit->fcp_lun,
1792 unit->port->wwpn, 1722 unit->port->wwpn,
1793 queue_designator->hla, 1723 queue_designator->cssid,
1794 queue_designator->cssid); 1724 queue_designator->hla);
1795 else 1725 else
1796 zfcp_act_eval_err(adapter, 1726 zfcp_act_eval_err(adapter,
1797 header->fsf_status_qual.word[2]); 1727 header->fsf_status_qual.word[2]);
@@ -1802,8 +1732,8 @@ static void zfcp_fsf_open_unit_handler(struct zfcp_fsf_req *req)
1802 break; 1732 break;
1803 case FSF_MAXIMUM_NUMBER_OF_LUNS_EXCEEDED: 1733 case FSF_MAXIMUM_NUMBER_OF_LUNS_EXCEEDED:
1804 dev_warn(&adapter->ccw_device->dev, 1734 dev_warn(&adapter->ccw_device->dev,
1805 "The adapter ran out of resources. There is no " 1735 "No handle is available for LUN "
1806 "handle available for unit 0x%016Lx on port 0x%016Lx.", 1736 "0x%016Lx on port 0x%016Lx\n",
1807 unit->fcp_lun, unit->port->wwpn); 1737 unit->fcp_lun, unit->port->wwpn);
1808 zfcp_erp_unit_failed(unit, 34, req); 1738 zfcp_erp_unit_failed(unit, 34, req);
1809 /* fall through */ 1739 /* fall through */
@@ -1841,25 +1771,25 @@ static void zfcp_fsf_open_unit_handler(struct zfcp_fsf_req *req)
1841 atomic_set_mask(ZFCP_STATUS_UNIT_READONLY, 1771 atomic_set_mask(ZFCP_STATUS_UNIT_READONLY,
1842 &unit->status); 1772 &unit->status);
1843 dev_info(&adapter->ccw_device->dev, 1773 dev_info(&adapter->ccw_device->dev,
1844 "Read-only access for unit 0x%016Lx " 1774 "SCSI device at LUN 0x%016Lx on port "
1845 "on port 0x%016Lx.\n", 1775 "0x%016Lx opened read-only\n",
1846 unit->fcp_lun, unit->port->wwpn); 1776 unit->fcp_lun, unit->port->wwpn);
1847 } 1777 }
1848 1778
1849 if (exclusive && !readwrite) { 1779 if (exclusive && !readwrite) {
1850 dev_err(&adapter->ccw_device->dev, 1780 dev_err(&adapter->ccw_device->dev,
1851 "Exclusive access of read-only unit " 1781 "Exclusive read-only access not "
1852 "0x%016Lx on port 0x%016Lx not " 1782 "supported (unit 0x%016Lx, "
1853 "supported, disabling unit.\n", 1783 "port 0x%016Lx)\n",
1854 unit->fcp_lun, unit->port->wwpn); 1784 unit->fcp_lun, unit->port->wwpn);
1855 zfcp_erp_unit_failed(unit, 35, req); 1785 zfcp_erp_unit_failed(unit, 35, req);
1856 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 1786 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
1857 zfcp_erp_unit_shutdown(unit, 0, 80, req); 1787 zfcp_erp_unit_shutdown(unit, 0, 80, req);
1858 } else if (!exclusive && readwrite) { 1788 } else if (!exclusive && readwrite) {
1859 dev_err(&adapter->ccw_device->dev, 1789 dev_err(&adapter->ccw_device->dev,
1860 "Shared access of read-write unit " 1790 "Shared read-write access not "
1861 "0x%016Lx on port 0x%016Lx not " 1791 "supported (unit 0x%016Lx, port "
1862 "supported, disabling unit.\n", 1792 "0x%016Lx\n)",
1863 unit->fcp_lun, unit->port->wwpn); 1793 unit->fcp_lun, unit->port->wwpn);
1864 zfcp_erp_unit_failed(unit, 36, req); 1794 zfcp_erp_unit_failed(unit, 36, req);
1865 req->status |= ZFCP_STATUS_FSFREQ_ERROR; 1795 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
@@ -2166,9 +2096,8 @@ static void zfcp_fsf_send_fcp_command_handler(struct zfcp_fsf_req *req)
2166 break; 2096 break;
2167 case FSF_DIRECTION_INDICATOR_NOT_VALID: 2097 case FSF_DIRECTION_INDICATOR_NOT_VALID:
2168 dev_err(&req->adapter->ccw_device->dev, 2098 dev_err(&req->adapter->ccw_device->dev,
2169 "Invalid data direction (%d) given for unit " 2099 "Incorrect direction %d, unit 0x%016Lx on port "
2170 "0x%016Lx on port 0x%016Lx, shutting down " 2100 "0x%016Lx closed\n",
2171 "adapter.\n",
2172 req->qtcb->bottom.io.data_direction, 2101 req->qtcb->bottom.io.data_direction,
2173 unit->fcp_lun, unit->port->wwpn); 2102 unit->fcp_lun, unit->port->wwpn);
2174 zfcp_erp_adapter_shutdown(unit->port->adapter, 0, 133, req); 2103 zfcp_erp_adapter_shutdown(unit->port->adapter, 0, 133, req);
@@ -2176,9 +2105,8 @@ static void zfcp_fsf_send_fcp_command_handler(struct zfcp_fsf_req *req)
2176 break; 2105 break;
2177 case FSF_CMND_LENGTH_NOT_VALID: 2106 case FSF_CMND_LENGTH_NOT_VALID:
2178 dev_err(&req->adapter->ccw_device->dev, 2107 dev_err(&req->adapter->ccw_device->dev,
2179 "An invalid control-data-block length field (%d) " 2108 "Incorrect CDB length %d, unit 0x%016Lx on "
2180 "was found in a command for unit 0x%016Lx on port " 2109 "port 0x%016Lx closed\n",
2181 "0x%016Lx. Shutting down adapter.\n",
2182 req->qtcb->bottom.io.fcp_cmnd_length, 2110 req->qtcb->bottom.io.fcp_cmnd_length,
2183 unit->fcp_lun, unit->port->wwpn); 2111 unit->fcp_lun, unit->port->wwpn);
2184 zfcp_erp_adapter_shutdown(unit->port->adapter, 0, 134, req); 2112 zfcp_erp_adapter_shutdown(unit->port->adapter, 0, 134, req);
@@ -2306,10 +2234,9 @@ int zfcp_fsf_send_fcp_command_task(struct zfcp_adapter *adapter,
2306 retval = -EIO; 2234 retval = -EIO;
2307 else { 2235 else {
2308 dev_err(&adapter->ccw_device->dev, 2236 dev_err(&adapter->ccw_device->dev,
2309 "SCSI request too large. " 2237 "Oversize data package, unit 0x%016Lx "
2310 "Shutting down unit 0x%016Lx on port " 2238 "on port 0x%016Lx closed\n",
2311 "0x%016Lx.\n", unit->fcp_lun, 2239 unit->fcp_lun, unit->port->wwpn);
2312 unit->port->wwpn);
2313 zfcp_erp_unit_shutdown(unit, 0, 131, req); 2240 zfcp_erp_unit_shutdown(unit, 0, 131, req);
2314 retval = -EINVAL; 2241 retval = -EINVAL;
2315 } 2242 }
diff --git a/drivers/s390/scsi/zfcp_qdio.c b/drivers/s390/scsi/zfcp_qdio.c
index cc49eaa9281f..9c5b84980901 100644
--- a/drivers/s390/scsi/zfcp_qdio.c
+++ b/drivers/s390/scsi/zfcp_qdio.c
@@ -57,7 +57,7 @@ void zfcp_qdio_free(struct zfcp_adapter *adapter)
57 57
58static void zfcp_qdio_handler_error(struct zfcp_adapter *adapter, u8 id) 58static void zfcp_qdio_handler_error(struct zfcp_adapter *adapter, u8 id)
59{ 59{
60 dev_warn(&adapter->ccw_device->dev, "QDIO problem occurred.\n"); 60 dev_warn(&adapter->ccw_device->dev, "A QDIO problem occurred\n");
61 61
62 zfcp_erp_adapter_reopen(adapter, 62 zfcp_erp_adapter_reopen(adapter,
63 ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED | 63 ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED |
@@ -174,8 +174,8 @@ static void zfcp_qdio_int_resp(struct ccw_device *cdev, unsigned int qdio_err,
174 174
175 if (unlikely(!(sbale->flags & SBAL_FLAGS_LAST_ENTRY))) 175 if (unlikely(!(sbale->flags & SBAL_FLAGS_LAST_ENTRY)))
176 dev_warn(&adapter->ccw_device->dev, 176 dev_warn(&adapter->ccw_device->dev,
177 "Protocol violation by adapter. " 177 "A QDIO protocol error occurred, "
178 "Continuing operations.\n"); 178 "operations continue\n");
179 } 179 }
180 180
181 /* 181 /*
@@ -457,17 +457,11 @@ int zfcp_qdio_open(struct zfcp_adapter *adapter)
457 if (atomic_test_mask(ZFCP_STATUS_ADAPTER_QDIOUP, &adapter->status)) 457 if (atomic_test_mask(ZFCP_STATUS_ADAPTER_QDIOUP, &adapter->status))
458 return -EIO; 458 return -EIO;
459 459
460 if (qdio_establish(&adapter->qdio_init_data)) { 460 if (qdio_establish(&adapter->qdio_init_data))
461 dev_err(&adapter->ccw_device->dev, 461 goto failed_establish;
462 "Establish of QDIO queues failed.\n");
463 return -EIO;
464 }
465 462
466 if (qdio_activate(adapter->ccw_device)) { 463 if (qdio_activate(adapter->ccw_device))
467 dev_err(&adapter->ccw_device->dev,
468 "Activate of QDIO queues failed.\n");
469 goto failed_qdio; 464 goto failed_qdio;
470 }
471 465
472 for (cc = 0; cc < QDIO_MAX_BUFFERS_PER_Q; cc++) { 466 for (cc = 0; cc < QDIO_MAX_BUFFERS_PER_Q; cc++) {
473 sbale = &(adapter->resp_q.sbal[cc]->element[0]); 467 sbale = &(adapter->resp_q.sbal[cc]->element[0]);
@@ -477,11 +471,8 @@ int zfcp_qdio_open(struct zfcp_adapter *adapter)
477 } 471 }
478 472
479 if (do_QDIO(adapter->ccw_device, QDIO_FLAG_SYNC_INPUT, 0, 0, 473 if (do_QDIO(adapter->ccw_device, QDIO_FLAG_SYNC_INPUT, 0, 0,
480 QDIO_MAX_BUFFERS_PER_Q)) { 474 QDIO_MAX_BUFFERS_PER_Q))
481 dev_err(&adapter->ccw_device->dev,
482 "Init of QDIO response queue failed.\n");
483 goto failed_qdio; 475 goto failed_qdio;
484 }
485 476
486 /* set index of first avalable SBALS / number of available SBALS */ 477 /* set index of first avalable SBALS / number of available SBALS */
487 adapter->req_q.first = 0; 478 adapter->req_q.first = 0;
@@ -492,5 +483,8 @@ int zfcp_qdio_open(struct zfcp_adapter *adapter)
492 483
493failed_qdio: 484failed_qdio:
494 qdio_shutdown(adapter->ccw_device, QDIO_FLAG_CLEANUP_USING_CLEAR); 485 qdio_shutdown(adapter->ccw_device, QDIO_FLAG_CLEANUP_USING_CLEAR);
486failed_establish:
487 dev_err(&adapter->ccw_device->dev,
488 "Setting up the QDIO connection to the FCP adapter failed\n");
495 return -EIO; 489 return -EIO;
496} 490}
diff --git a/drivers/s390/scsi/zfcp_scsi.c b/drivers/s390/scsi/zfcp_scsi.c
index aeae56b00b45..6348cc5520e1 100644
--- a/drivers/s390/scsi/zfcp_scsi.c
+++ b/drivers/s390/scsi/zfcp_scsi.c
@@ -294,7 +294,8 @@ int zfcp_adapter_scsi_register(struct zfcp_adapter *adapter)
294 sizeof (struct zfcp_adapter *)); 294 sizeof (struct zfcp_adapter *));
295 if (!adapter->scsi_host) { 295 if (!adapter->scsi_host) {
296 dev_err(&adapter->ccw_device->dev, 296 dev_err(&adapter->ccw_device->dev,
297 "registration with SCSI stack failed."); 297 "Registering the FCP device with the "
298 "SCSI stack failed\n");
298 return -EIO; 299 return -EIO;
299 } 300 }
300 301