aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mpt2sas/mpt2sas_scsih.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/mpt2sas/mpt2sas_scsih.c')
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_scsih.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
index 939f283d0c28..6abd2fcc43e2 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c
+++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
@@ -4258,6 +4258,7 @@ _scsih_io_done(struct MPT2SAS_ADAPTER *ioc, u16 smid, u8 msix_index, u32 reply)
4258 u32 log_info; 4258 u32 log_info;
4259 struct MPT2SAS_DEVICE *sas_device_priv_data; 4259 struct MPT2SAS_DEVICE *sas_device_priv_data;
4260 u32 response_code = 0; 4260 u32 response_code = 0;
4261 unsigned long flags;
4261 4262
4262 mpi_reply = mpt2sas_base_get_reply_virt_addr(ioc, reply); 4263 mpi_reply = mpt2sas_base_get_reply_virt_addr(ioc, reply);
4263 scmd = _scsih_scsi_lookup_get_clear(ioc, smid); 4264 scmd = _scsih_scsi_lookup_get_clear(ioc, smid);
@@ -4282,6 +4283,9 @@ _scsih_io_done(struct MPT2SAS_ADAPTER *ioc, u16 smid, u8 msix_index, u32 reply)
4282 * the failed direct I/O should be redirected to volume 4283 * the failed direct I/O should be redirected to volume
4283 */ 4284 */
4284 if (_scsih_scsi_direct_io_get(ioc, smid)) { 4285 if (_scsih_scsi_direct_io_get(ioc, smid)) {
4286 spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
4287 ioc->scsi_lookup[smid - 1].scmd = scmd;
4288 spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags);
4285 _scsih_scsi_direct_io_set(ioc, smid, 0); 4289 _scsih_scsi_direct_io_set(ioc, smid, 0);
4286 memcpy(mpi_request->CDB.CDB32, scmd->cmnd, scmd->cmd_len); 4290 memcpy(mpi_request->CDB.CDB32, scmd->cmnd, scmd->cmd_len);
4287 mpi_request->DevHandle = 4291 mpi_request->DevHandle =