|
@@ -866,6 +866,7 @@ zfcp_fsf_status_read_handler(struct zfcp_fsf_req *fsf_req)
|
|
|
struct zfcp_adapter *adapter = fsf_req->adapter;
|
|
|
struct fsf_status_read_buffer *status_buffer =
|
|
|
(struct fsf_status_read_buffer *) fsf_req->data;
|
|
|
+ struct fsf_bit_error_payload *fsf_bit_error;
|
|
|
|
|
|
if (fsf_req->status & ZFCP_STATUS_FSFREQ_DISMISSED) {
|
|
|
zfcp_hba_dbf_event_fsf_unsol("dism", adapter, status_buffer);
|
|
@@ -892,10 +893,37 @@ zfcp_fsf_status_read_handler(struct zfcp_fsf_req *fsf_req)
|
|
|
break;
|
|
|
|
|
|
case FSF_STATUS_READ_BIT_ERROR_THRESHOLD:
|
|
|
- ZFCP_LOG_NORMAL("Bit error threshold data received:\n");
|
|
|
- ZFCP_HEX_DUMP(ZFCP_LOG_LEVEL_NORMAL,
|
|
|
- (char *) status_buffer,
|
|
|
- sizeof (struct fsf_status_read_buffer));
|
|
|
+ fsf_bit_error = (struct fsf_bit_error_payload *)
|
|
|
+ status_buffer->payload;
|
|
|
+ ZFCP_LOG_NORMAL("Warning: bit error threshold data "
|
|
|
+ "received (adapter %s, "
|
|
|
+ "link failures = %i, loss of sync errors = %i, "
|
|
|
+ "loss of signal errors = %i, "
|
|
|
+ "primitive sequence errors = %i, "
|
|
|
+ "invalid transmission word errors = %i, "
|
|
|
+ "CRC errors = %i)\n",
|
|
|
+ zfcp_get_busid_by_adapter(adapter),
|
|
|
+ fsf_bit_error->link_failure_error_count,
|
|
|
+ fsf_bit_error->loss_of_sync_error_count,
|
|
|
+ fsf_bit_error->loss_of_signal_error_count,
|
|
|
+ fsf_bit_error->primitive_sequence_error_count,
|
|
|
+ fsf_bit_error->invalid_transmission_word_error_count,
|
|
|
+ fsf_bit_error->crc_error_count);
|
|
|
+ ZFCP_LOG_INFO("Additional bit error threshold data "
|
|
|
+ "(adapter %s, "
|
|
|
+ "primitive sequence event time-outs = %i, "
|
|
|
+ "elastic buffer overrun errors = %i, "
|
|
|
+ "advertised receive buffer-to-buffer credit = %i, "
|
|
|
+ "current receice buffer-to-buffer credit = %i, "
|
|
|
+ "advertised transmit buffer-to-buffer credit = %i, "
|
|
|
+ "current transmit buffer-to-buffer credit = %i)\n",
|
|
|
+ zfcp_get_busid_by_adapter(adapter),
|
|
|
+ fsf_bit_error->primitive_sequence_event_timeout_count,
|
|
|
+ fsf_bit_error->elastic_buffer_overrun_error_count,
|
|
|
+ fsf_bit_error->advertised_receive_b2b_credit,
|
|
|
+ fsf_bit_error->current_receive_b2b_credit,
|
|
|
+ fsf_bit_error->advertised_transmit_b2b_credit,
|
|
|
+ fsf_bit_error->current_transmit_b2b_credit);
|
|
|
break;
|
|
|
|
|
|
case FSF_STATUS_READ_LINK_DOWN:
|