Daniel Wagner 83f781
From: Quinn Tran <qutran@marvell.com>
Daniel Wagner 83f781
Date: Wed, 8 Jun 2022 04:58:46 -0700
Daniel Wagner 83f781
Subject: scsi: qla2xxx: edif: Fix no logout on delete for N2N
Denis Kirjanov 718367
Patch-mainline: v5.20-rc1
Daniel Wagner 83f781
Git-commit: ec538eb838f334453b10e7e9b260f0c358018a37
Daniel Wagner 83f781
References: bsc#1201958
Daniel Wagner 83f781
Daniel Wagner 83f781
The driver failed to send implicit logout on session delete. For edif, this
Daniel Wagner 83f781
failed to flush any lingering SA index in FW.
Daniel Wagner 83f781
Daniel Wagner 83f781
Set a flag to turn on implicit logout early in the session recovery to make
Daniel Wagner 83f781
sure the logout will go out in case of error.
Daniel Wagner 83f781
Daniel Wagner 83f781
Link: https://lore.kernel.org/r/20220608115849.16693-8-njavali@marvell.com
Daniel Wagner 83f781
Fixes: 4de067e5df12 ("scsi: qla2xxx: edif: Add N2N support for EDIF")
Daniel Wagner 83f781
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Daniel Wagner 83f781
Signed-off-by: Quinn Tran <qutran@marvell.com>
Daniel Wagner 83f781
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Daniel Wagner 83f781
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Daniel Wagner 83f781
Acked-by: Daniel Wagner <dwagner@suse.de>
Daniel Wagner 83f781
---
Daniel Wagner 83f781
 drivers/scsi/qla2xxx/qla_iocb.c |    3 +++
Daniel Wagner 83f781
 1 file changed, 3 insertions(+)
Daniel Wagner 83f781
Daniel Wagner 83f781
--- a/drivers/scsi/qla2xxx/qla_iocb.c
Daniel Wagner 83f781
+++ b/drivers/scsi/qla2xxx/qla_iocb.c
Daniel Wagner 83f781
@@ -2885,6 +2885,9 @@ static void qla2x00_els_dcmd2_sp_done(sr
Daniel Wagner 83f781
 	    sp->name, res, sp->handle, fcport->d_id.b24, fcport->port_name);
Daniel Wagner 83f781
 
Daniel Wagner 83f781
 	fcport->flags &= ~(FCF_ASYNC_SENT|FCF_ASYNC_ACTIVE);
Daniel Wagner 83f781
+	/* For edif, set logout on delete to ensure any residual key from FW is flushed.*/
Daniel Wagner 83f781
+	fcport->logout_on_delete = 1;
Daniel Wagner 83f781
+	fcport->chip_reset = vha->hw->base_qpair->chip_reset;
Daniel Wagner 83f781
 
Daniel Wagner 83f781
 	if (sp->flags & SRB_WAKEUP_ON_COMP)
Daniel Wagner 83f781
 		complete(&lio->u.els_plogi.comp);