aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi/zfcp_fsf.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/scsi/zfcp_fsf.c')
-rw-r--r--drivers/s390/scsi/zfcp_fsf.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c
index 6d805c50627f..9881ba947f11 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -211,13 +211,13 @@ static void zfcp_fsf_status_read_handler(struct zfcp_fsf_req *req)
211 struct fsf_status_read_buffer *sr_buf = req->data; 211 struct fsf_status_read_buffer *sr_buf = req->data;
212 212
213 if (req->status & ZFCP_STATUS_FSFREQ_DISMISSED) { 213 if (req->status & ZFCP_STATUS_FSFREQ_DISMISSED) {
214 zfcp_dbf_hba_fsf_unsol("dism", adapter->dbf, sr_buf); 214 zfcp_dbf_hba_fsf_uss("fssrh_1", req);
215 mempool_free(sr_buf, adapter->pool.status_read_data); 215 mempool_free(sr_buf, adapter->pool.status_read_data);
216 zfcp_fsf_req_free(req); 216 zfcp_fsf_req_free(req);
217 return; 217 return;
218 } 218 }
219 219
220 zfcp_dbf_hba_fsf_unsol("read", adapter->dbf, sr_buf); 220 zfcp_dbf_hba_fsf_uss("fssrh_2", req);
221 221
222 switch (sr_buf->status_type) { 222 switch (sr_buf->status_type) {
223 case FSF_STATUS_READ_PORT_CLOSED: 223 case FSF_STATUS_READ_PORT_CLOSED:
@@ -232,7 +232,7 @@ static void zfcp_fsf_status_read_handler(struct zfcp_fsf_req *req)
232 dev_warn(&adapter->ccw_device->dev, 232 dev_warn(&adapter->ccw_device->dev,
233 "The error threshold for checksum statistics " 233 "The error threshold for checksum statistics "
234 "has been exceeded\n"); 234 "has been exceeded\n");
235 zfcp_dbf_hba_berr(adapter->dbf, req); 235 zfcp_dbf_hba_bit_err("fssrh_3", req);
236 break; 236 break;
237 case FSF_STATUS_READ_LINK_DOWN: 237 case FSF_STATUS_READ_LINK_DOWN:
238 zfcp_fsf_status_read_link_down(req); 238 zfcp_fsf_status_read_link_down(req);
@@ -754,10 +754,11 @@ int zfcp_fsf_status_read(struct zfcp_qdio *qdio)
754 goto out; 754 goto out;
755 755
756failed_req_send: 756failed_req_send:
757 req->data = NULL;
757 mempool_free(sr_buf, adapter->pool.status_read_data); 758 mempool_free(sr_buf, adapter->pool.status_read_data);
758failed_buf: 759failed_buf:
760 zfcp_dbf_hba_fsf_uss("fssr__1", req);
759 zfcp_fsf_req_free(req); 761 zfcp_fsf_req_free(req);
760 zfcp_dbf_hba_fsf_unsol("fail", adapter->dbf, NULL);
761out: 762out:
762 spin_unlock_irq(&qdio->req_q_lock); 763 spin_unlock_irq(&qdio->req_q_lock);
763 return retval; 764 return retval;
@@ -2420,3 +2421,12 @@ void zfcp_fsf_reqid_check(struct zfcp_qdio *qdio, int sbal_idx)
2420 break; 2421 break;
2421 } 2422 }
2422} 2423}
2424
2425struct zfcp_fsf_req *zfcp_fsf_get_req(struct zfcp_qdio *qdio,
2426 struct qdio_buffer *sbal)
2427{
2428 struct qdio_buffer_element *sbale = &sbal->element[0];
2429 u64 req_id = (unsigned long) sbale->addr;
2430
2431 return zfcp_reqlist_find(qdio->adapter->req_list, req_id);
2432}