diff options
Diffstat (limited to 'drivers/s390/scsi')
-rw-r--r-- | drivers/s390/scsi/zfcp_dbf.c | 2 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_dbf.h | 1 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_def.h | 1 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_qdio.c | 5 |
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 | */ |
237 | static void zfcp_qdio_reqid_check(struct zfcp_adapter *adapter, | 237 | static 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 |