diff mbox series

[05/13] qla2xxx: flush IO on chip reset or sess delete

Message ID 20190125072351.3504-6-hmadhani@marvell.com (mailing list archive)
State Mainlined
Commit 51fd6e6351a62da87a7eb7b059d34056d73e68e5
Headers show
Series qla2xxx: Driver updates and bug fixes | expand

Commit Message

Himanshu Madhani Jan. 25, 2019, 7:23 a.m. UTC
From: Quinn Tran <quinn.tran@cavium.com>

On Transmit respond in target mode, if the chip is already
reset or the session is already deleted, then advance the
command to the free step.  There is no need to abort the
command, because the chip has already flushed it.

Signed-off-by: Quinn Tran <quinn.tran@cavium.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
---
 drivers/scsi/qla2xxx/qla_target.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
diff mbox series

Patch

diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c
index 510337eac106..8bc4c651af68 100644
--- a/drivers/scsi/qla2xxx/qla_target.c
+++ b/drivers/scsi/qla2xxx/qla_target.c
@@ -3257,13 +3257,10 @@  int qlt_xmit_response(struct qla_tgt_cmd *cmd, int xmit_type,
 	unsigned long flags = 0;
 	int res;
 
-	if (cmd->sess && cmd->sess->deleted) {
+	if (!qpair->fw_started || (cmd->reset_count != qpair->chip_reset) ||
+	    (cmd->sess && cmd->sess->deleted)) {
 		cmd->state = QLA_TGT_STATE_PROCESSED;
-		if (cmd->sess->logout_completed)
-			/* no need to terminate. FW already freed exchange. */
-			qlt_abort_cmd_on_host_reset(cmd->vha, cmd);
-		else
-			qlt_send_term_exchange(qpair, cmd, &cmd->atio, 0, 0);
+		qlt_abort_cmd_on_host_reset(cmd->vha, cmd);
 		return 0;
 	}