diff options
Diffstat (limited to 'drivers/s390/scsi/zfcp_fsf.c')
-rw-r--r-- | drivers/s390/scsi/zfcp_fsf.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c index beaf0916ceab..2eb7dd56ab80 100644 --- a/drivers/s390/scsi/zfcp_fsf.c +++ b/drivers/s390/scsi/zfcp_fsf.c | |||
@@ -532,9 +532,6 @@ static void zfcp_fsf_exchange_config_data_handler(struct zfcp_fsf_req *req) | |||
532 | fc_host_port_type(shost) = FC_PORTTYPE_UNKNOWN; | 532 | fc_host_port_type(shost) = FC_PORTTYPE_UNKNOWN; |
533 | adapter->hydra_version = 0; | 533 | adapter->hydra_version = 0; |
534 | 534 | ||
535 | atomic_set_mask(ZFCP_STATUS_ADAPTER_XCONFIG_OK, | ||
536 | &adapter->status); | ||
537 | |||
538 | zfcp_fsf_link_down_info_eval(req, | 535 | zfcp_fsf_link_down_info_eval(req, |
539 | &qtcb->header.fsf_status_qual.link_down_info); | 536 | &qtcb->header.fsf_status_qual.link_down_info); |
540 | break; | 537 | break; |
@@ -854,7 +851,7 @@ struct zfcp_fsf_req *zfcp_fsf_abort_fcp_cmnd(struct scsi_cmnd *scmnd) | |||
854 | 851 | ||
855 | zfcp_qdio_set_sbale_last(qdio, &req->qdio_req); | 852 | zfcp_qdio_set_sbale_last(qdio, &req->qdio_req); |
856 | 853 | ||
857 | req->data = zfcp_sdev; | 854 | req->data = sdev; |
858 | req->handler = zfcp_fsf_abort_fcp_command_handler; | 855 | req->handler = zfcp_fsf_abort_fcp_command_handler; |
859 | req->qtcb->header.lun_handle = zfcp_sdev->lun_handle; | 856 | req->qtcb->header.lun_handle = zfcp_sdev->lun_handle; |
860 | req->qtcb->header.port_handle = zfcp_sdev->port->handle; | 857 | req->qtcb->header.port_handle = zfcp_sdev->port->handle; |
@@ -2072,8 +2069,6 @@ static void zfcp_fsf_fcp_cmnd_handler(struct zfcp_fsf_req *req) | |||
2072 | struct fcp_resp_with_ext *fcp_rsp; | 2069 | struct fcp_resp_with_ext *fcp_rsp; |
2073 | unsigned long flags; | 2070 | unsigned long flags; |
2074 | 2071 | ||
2075 | zfcp_fsf_fcp_handler_common(req); | ||
2076 | |||
2077 | read_lock_irqsave(&req->adapter->abort_lock, flags); | 2072 | read_lock_irqsave(&req->adapter->abort_lock, flags); |
2078 | 2073 | ||
2079 | scpnt = req->data; | 2074 | scpnt = req->data; |
@@ -2082,6 +2077,8 @@ static void zfcp_fsf_fcp_cmnd_handler(struct zfcp_fsf_req *req) | |||
2082 | return; | 2077 | return; |
2083 | } | 2078 | } |
2084 | 2079 | ||
2080 | zfcp_fsf_fcp_handler_common(req); | ||
2081 | |||
2085 | if (unlikely(req->status & ZFCP_STATUS_FSFREQ_ERROR)) { | 2082 | if (unlikely(req->status & ZFCP_STATUS_FSFREQ_ERROR)) { |
2086 | set_host_byte(scpnt, DID_TRANSPORT_DISRUPTED); | 2083 | set_host_byte(scpnt, DID_TRANSPORT_DISRUPTED); |
2087 | goto skip_fsfstatus; | 2084 | goto skip_fsfstatus; |
@@ -2173,12 +2170,13 @@ int zfcp_fsf_fcp_cmnd(struct scsi_cmnd *scsi_cmnd) | |||
2173 | struct zfcp_adapter *adapter = zfcp_sdev->port->adapter; | 2170 | struct zfcp_adapter *adapter = zfcp_sdev->port->adapter; |
2174 | struct zfcp_qdio *qdio = adapter->qdio; | 2171 | struct zfcp_qdio *qdio = adapter->qdio; |
2175 | struct fsf_qtcb_bottom_io *io; | 2172 | struct fsf_qtcb_bottom_io *io; |
2173 | unsigned long flags; | ||
2176 | 2174 | ||
2177 | if (unlikely(!(atomic_read(&zfcp_sdev->status) & | 2175 | if (unlikely(!(atomic_read(&zfcp_sdev->status) & |
2178 | ZFCP_STATUS_COMMON_UNBLOCKED))) | 2176 | ZFCP_STATUS_COMMON_UNBLOCKED))) |
2179 | return -EBUSY; | 2177 | return -EBUSY; |
2180 | 2178 | ||
2181 | spin_lock(&qdio->req_q_lock); | 2179 | spin_lock_irqsave(&qdio->req_q_lock, flags); |
2182 | if (atomic_read(&qdio->req_q_free) <= 0) { | 2180 | if (atomic_read(&qdio->req_q_free) <= 0) { |
2183 | atomic_inc(&qdio->req_q_full); | 2181 | atomic_inc(&qdio->req_q_full); |
2184 | goto out; | 2182 | goto out; |
@@ -2242,7 +2240,7 @@ failed_scsi_cmnd: | |||
2242 | zfcp_fsf_req_free(req); | 2240 | zfcp_fsf_req_free(req); |
2243 | scsi_cmnd->host_scribble = NULL; | 2241 | scsi_cmnd->host_scribble = NULL; |
2244 | out: | 2242 | out: |
2245 | spin_unlock(&qdio->req_q_lock); | 2243 | spin_unlock_irqrestore(&qdio->req_q_lock, flags); |
2246 | return retval; | 2244 | return retval; |
2247 | } | 2245 | } |
2248 | 2246 | ||