diff options
author | David S. Miller <davem@davemloft.net> | 2015-01-06 22:29:20 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-01-06 22:29:20 -0500 |
commit | 44d84d7272e5848878a96029b8a8b6e86854f146 (patch) | |
tree | 91b188c0ae21255510ace7507d42cdf0e8f6f5ae /drivers/scsi/fnic/fnic_scsi.c | |
parent | de7b5b3d790a2524c3f992d357983600635c441b (diff) | |
parent | bdec41963890f8ed9ad89f8b418959ab3cdc2aa3 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'drivers/scsi/fnic/fnic_scsi.c')
-rw-r--r-- | drivers/scsi/fnic/fnic_scsi.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/scsi/fnic/fnic_scsi.c b/drivers/scsi/fnic/fnic_scsi.c index 2097de42a147..155b286f1a9d 100644 --- a/drivers/scsi/fnic/fnic_scsi.c +++ b/drivers/scsi/fnic/fnic_scsi.c @@ -1892,6 +1892,21 @@ int fnic_abort_cmd(struct scsi_cmnd *sc) goto fnic_abort_cmd_end; } + /* IO out of order */ + + if (!(CMD_FLAGS(sc) & (FNIC_IO_ABORTED | FNIC_IO_DONE))) { + spin_unlock_irqrestore(io_lock, flags); + FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, + "Issuing Host reset due to out of order IO\n"); + + if (fnic_host_reset(sc) == FAILED) { + FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, + "fnic_host_reset failed.\n"); + } + ret = FAILED; + goto fnic_abort_cmd_end; + } + CMD_STATE(sc) = FNIC_IOREQ_ABTS_COMPLETE; /* |