Blame SOURCES/0007-scsi-scsi-qla2xxx-flush-IO-on-chip-reset-or-sess-del.patch

3d7c23
From 236552af719bde2cc49c85a0e594389040299754 Mon Sep 17 00:00:00 2001
3d7c23
From: Himanshu Madhani <hmadhani@redhat.com>
3d7c23
Date: Thu, 1 Aug 2019 15:54:27 -0400
3d7c23
Subject: [PATCH 007/124] [scsi] scsi: qla2xxx: flush IO on chip reset or sess
3d7c23
 delete
3d7c23
3d7c23
Message-id: <20190801155618.12650-8-hmadhani@redhat.com>
3d7c23
Patchwork-id: 267781
3d7c23
O-Subject: [RHEL 7.8 e-stor PATCH 007/118] scsi: qla2xxx: flush IO on chip reset or sess delete
3d7c23
Bugzilla: 1729270
3d7c23
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
3d7c23
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
3d7c23
3d7c23
From: Quinn Tran <quinn.tran@cavium.com>
3d7c23
3d7c23
Bugzilla 1729270
3d7c23
3d7c23
On Transmit respond in target mode, if the chip is already reset or the
3d7c23
session is already deleted, then advance the command to the free step.
3d7c23
There is no need to abort the command, because the chip has already flushed
3d7c23
it.
3d7c23
3d7c23
Signed-off-by: Quinn Tran <quinn.tran@cavium.com>
3d7c23
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
3d7c23
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
3d7c23
(cherry picked from commit 51fd6e6351a62da87a7eb7b059d34056d73e68e5)
3d7c23
Signed-off-by: Himanshu Madhani <hmadhani@redhat.com>
3d7c23
Signed-off-by: Jan Stancek <jstancek@redhat.com>
3d7c23
---
3d7c23
 drivers/scsi/qla2xxx/qla_target.c | 9 +++------
3d7c23
 1 file changed, 3 insertions(+), 6 deletions(-)
3d7c23
3d7c23
diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c
3d7c23
index a4ab3401a90b..7faa33e21543 100644
3d7c23
--- a/drivers/scsi/qla2xxx/qla_target.c
3d7c23
+++ b/drivers/scsi/qla2xxx/qla_target.c
3d7c23
@@ -3253,13 +3253,10 @@ int qlt_xmit_response(struct qla_tgt_cmd *cmd, int xmit_type,
3d7c23
 	unsigned long flags = 0;
3d7c23
 	int res;
3d7c23
 
3d7c23
-	if (cmd->sess && cmd->sess->deleted) {
3d7c23
+	if (!qpair->fw_started || (cmd->reset_count != qpair->chip_reset) ||
3d7c23
+	    (cmd->sess && cmd->sess->deleted)) {
3d7c23
 		cmd->state = QLA_TGT_STATE_PROCESSED;
3d7c23
-		if (cmd->sess->logout_completed)
3d7c23
-			/* no need to terminate. FW already freed exchange. */
3d7c23
-			qlt_abort_cmd_on_host_reset(cmd->vha, cmd);
3d7c23
-		else
3d7c23
-			qlt_send_term_exchange(qpair, cmd, &cmd->atio, 0, 0);
3d7c23
+		qlt_abort_cmd_on_host_reset(cmd->vha, cmd);
3d7c23
 		return 0;
3d7c23
 	}
3d7c23
 
3d7c23
-- 
3d7c23
2.13.6
3d7c23