aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/scsi')
-rw-r--r--drivers/s390/scsi/zfcp_qdio.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/s390/scsi/zfcp_qdio.c b/drivers/s390/scsi/zfcp_qdio.c
index 345a191926a4..49ea5add4abc 100644
--- a/drivers/s390/scsi/zfcp_qdio.c
+++ b/drivers/s390/scsi/zfcp_qdio.c
@@ -427,6 +427,7 @@ int
427zfcp_qdio_reqid_check(struct zfcp_adapter *adapter, void *sbale_addr) 427zfcp_qdio_reqid_check(struct zfcp_adapter *adapter, void *sbale_addr)
428{ 428{
429 struct zfcp_fsf_req *fsf_req; 429 struct zfcp_fsf_req *fsf_req;
430 unsigned long flags;
430 431
431 /* invalid (per convention used in this driver) */ 432 /* invalid (per convention used in this driver) */
432 if (unlikely(!sbale_addr)) { 433 if (unlikely(!sbale_addr)) {
@@ -438,15 +439,15 @@ zfcp_qdio_reqid_check(struct zfcp_adapter *adapter, void *sbale_addr)
438 fsf_req = (struct zfcp_fsf_req *) sbale_addr; 439 fsf_req = (struct zfcp_fsf_req *) sbale_addr;
439 440
440 /* serialize with zfcp_fsf_req_dismiss_all */ 441 /* serialize with zfcp_fsf_req_dismiss_all */
441 spin_lock(&adapter->fsf_req_list_lock); 442 spin_lock_irqsave(&adapter->fsf_req_list_lock, flags);
442 if (list_empty(&adapter->fsf_req_list_head)) { 443 if (list_empty(&adapter->fsf_req_list_head)) {
443 spin_unlock(&adapter->fsf_req_list_lock); 444 spin_unlock_irqrestore(&adapter->fsf_req_list_lock, flags);
444 return 0; 445 return 0;
445 } 446 }
446 list_del(&fsf_req->list); 447 list_del(&fsf_req->list);
447 atomic_dec(&adapter->fsf_reqs_active); 448 atomic_dec(&adapter->fsf_reqs_active);
448 spin_unlock(&adapter->fsf_req_list_lock); 449 spin_unlock_irqrestore(&adapter->fsf_req_list_lock, flags);
449 450
450 if (unlikely(adapter != fsf_req->adapter)) { 451 if (unlikely(adapter != fsf_req->adapter)) {
451 ZFCP_LOG_NORMAL("bug: invalid reqid (fsf_req=%p, " 452 ZFCP_LOG_NORMAL("bug: invalid reqid (fsf_req=%p, "
452 "fsf_req->adapter=%p, adapter=%p)\n", 453 "fsf_req->adapter=%p, adapter=%p)\n",