aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/scsi')
-rw-r--r--drivers/s390/scsi/zfcp_dbf.c2
-rw-r--r--drivers/s390/scsi/zfcp_dbf.h1
-rw-r--r--drivers/s390/scsi/zfcp_def.h1
-rw-r--r--drivers/s390/scsi/zfcp_qdio.c5
4 files changed, 7 insertions, 2 deletions
diff --git a/drivers/s390/scsi/zfcp_dbf.c b/drivers/s390/scsi/zfcp_dbf.c
index 0a2ffc635c77..2bad934a67af 100644
--- a/drivers/s390/scsi/zfcp_dbf.c
+++ b/drivers/s390/scsi/zfcp_dbf.c
@@ -187,6 +187,7 @@ void zfcp_hba_dbf_event_fsf_response(struct zfcp_fsf_req *fsf_req)
187 response->fsf_req_status = fsf_req->status; 187 response->fsf_req_status = fsf_req->status;
188 response->sbal_first = fsf_req->sbal_first; 188 response->sbal_first = fsf_req->sbal_first;
189 response->sbal_last = fsf_req->sbal_last; 189 response->sbal_last = fsf_req->sbal_last;
190 response->sbal_response = fsf_req->sbal_response;
190 response->pool = fsf_req->pool != NULL; 191 response->pool = fsf_req->pool != NULL;
191 response->erp_action = (unsigned long)fsf_req->erp_action; 192 response->erp_action = (unsigned long)fsf_req->erp_action;
192 193
@@ -355,6 +356,7 @@ static void zfcp_hba_dbf_view_response(char **p,
355 zfcp_dbf_out(p, "fsf_req_status", "0x%08x", r->fsf_req_status); 356 zfcp_dbf_out(p, "fsf_req_status", "0x%08x", r->fsf_req_status);
356 zfcp_dbf_out(p, "sbal_first", "0x%02x", r->sbal_first); 357 zfcp_dbf_out(p, "sbal_first", "0x%02x", r->sbal_first);
357 zfcp_dbf_out(p, "sbal_last", "0x%02x", r->sbal_last); 358 zfcp_dbf_out(p, "sbal_last", "0x%02x", r->sbal_last);
359 zfcp_dbf_out(p, "sbal_response", "0x%02x", r->sbal_response);
358 zfcp_dbf_out(p, "pool", "0x%02x", r->pool); 360 zfcp_dbf_out(p, "pool", "0x%02x", r->pool);
359 361
360 switch (r->fsf_command) { 362 switch (r->fsf_command) {
diff --git a/drivers/s390/scsi/zfcp_dbf.h b/drivers/s390/scsi/zfcp_dbf.h
index 212622ca2e80..f71176acfab8 100644
--- a/drivers/s390/scsi/zfcp_dbf.h
+++ b/drivers/s390/scsi/zfcp_dbf.h
@@ -98,6 +98,7 @@ struct zfcp_hba_dbf_record_response {
98 u32 fsf_req_status; 98 u32 fsf_req_status;
99 u8 sbal_first; 99 u8 sbal_first;
100 u8 sbal_last; 100 u8 sbal_last;
101 u8 sbal_response;
101 u8 pool; 102 u8 pool;
102 u64 erp_action; 103 u64 erp_action;
103 union { 104 union {
diff --git a/drivers/s390/scsi/zfcp_def.h b/drivers/s390/scsi/zfcp_def.h
index 210273d97f00..fc61a8ed52d3 100644
--- a/drivers/s390/scsi/zfcp_def.h
+++ b/drivers/s390/scsi/zfcp_def.h
@@ -856,6 +856,7 @@ struct zfcp_fsf_req {
856 this reuest */ 856 this reuest */
857 u8 sbale_curr; /* current SBALE during creation 857 u8 sbale_curr; /* current SBALE during creation
858 of request */ 858 of request */
859 u8 sbal_response; /* SBAL used in interrupt */
859 wait_queue_head_t completion_wq; /* can be used by a routine 860 wait_queue_head_t completion_wq; /* can be used by a routine
860 to wait for completion */ 861 to wait for completion */
861 volatile u32 status; /* status of this request */ 862 volatile u32 status; /* status of this request */
diff --git a/drivers/s390/scsi/zfcp_qdio.c b/drivers/s390/scsi/zfcp_qdio.c
index 8c83cdc73d98..e71547357f62 100644
--- a/drivers/s390/scsi/zfcp_qdio.c
+++ b/drivers/s390/scsi/zfcp_qdio.c
@@ -235,7 +235,7 @@ zfcp_qdio_request_handler(struct ccw_device *ccw_device,
235 * zfcp_qdio_reqid_check - checks for valid reqids. 235 * zfcp_qdio_reqid_check - checks for valid reqids.
236 */ 236 */
237static void zfcp_qdio_reqid_check(struct zfcp_adapter *adapter, 237static void zfcp_qdio_reqid_check(struct zfcp_adapter *adapter,
238 unsigned long req_id) 238 unsigned long req_id, int sbal)
239{ 239{
240 struct zfcp_fsf_req *fsf_req; 240 struct zfcp_fsf_req *fsf_req;
241 unsigned long flags; 241 unsigned long flags;
@@ -255,6 +255,7 @@ static void zfcp_qdio_reqid_check(struct zfcp_adapter *adapter,
255 atomic_dec(&adapter->reqs_active); 255 atomic_dec(&adapter->reqs_active);
256 spin_unlock_irqrestore(&adapter->req_list_lock, flags); 256 spin_unlock_irqrestore(&adapter->req_list_lock, flags);
257 257
258 fsf_req->sbal_response = sbal;
258 /* finish the FSF request */ 259 /* finish the FSF request */
259 zfcp_fsf_req_complete(fsf_req); 260 zfcp_fsf_req_complete(fsf_req);
260} 261}
@@ -321,7 +322,7 @@ zfcp_qdio_response_handler(struct ccw_device *ccw_device,
321 /* look for QDIO request identifiers in SB */ 322 /* look for QDIO request identifiers in SB */
322 buffere = &buffer->element[buffere_index]; 323 buffere = &buffer->element[buffere_index];
323 zfcp_qdio_reqid_check(adapter, 324 zfcp_qdio_reqid_check(adapter,
324 (unsigned long) buffere->addr); 325 (unsigned long) buffere->addr, i);
325 326
326 /* 327 /*
327 * A single used SBALE per inbound SBALE has been 328 * A single used SBALE per inbound SBALE has been