Daniel Wagner 6a163b
From: Quinn Tran <qutran@marvell.com>
Daniel Wagner 6a163b
Date: Wed, 8 Jun 2022 04:58:43 -0700
Daniel Wagner 6a163b
Subject: scsi: qla2xxx: edif: Fix no login after app start
Denis Kirjanov 718367
Patch-mainline: v5.20-rc1
Daniel Wagner 6a163b
Git-commit: 24c796098f5395477f7f7ebf8e24f3f08a139f71
Daniel Wagner 6a163b
References: bsc#1201958
Daniel Wagner 6a163b
Daniel Wagner 6a163b
The scenario is this: User loaded driver but has not started authentication
Daniel Wagner 6a163b
app. All sessions to secure device will exhaust all login attempts, fail,
Daniel Wagner 6a163b
and in stay in deleted state. Then some time later the app is started. The
Daniel Wagner 6a163b
driver will replenish the login retry count, trigger delete to prepare for
Daniel Wagner 6a163b
secure login. After deletion, relogin is triggered.
Daniel Wagner 6a163b
Daniel Wagner 6a163b
For the session that is already deleted, the delete trigger is a no-op. If
Daniel Wagner 6a163b
none of the sessions trigger a relogin, no progress is made.
Daniel Wagner 6a163b
Daniel Wagner 6a163b
Add a relogin trigger.
Daniel Wagner 6a163b
Daniel Wagner 6a163b
Link: https://lore.kernel.org/r/20220608115849.16693-5-njavali@marvell.com
Daniel Wagner 6a163b
Fixes: 7ebb336e45ef ("scsi: qla2xxx: edif: Add start + stop bsgs")
Daniel Wagner 6a163b
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Daniel Wagner 6a163b
Signed-off-by: Quinn Tran <qutran@marvell.com>
Daniel Wagner 6a163b
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Daniel Wagner 6a163b
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Daniel Wagner 6a163b
Acked-by: Daniel Wagner <dwagner@suse.de>
Daniel Wagner 6a163b
---
Daniel Wagner 6a163b
 drivers/scsi/qla2xxx/qla_edif.c |    1 +
Daniel Wagner 6a163b
 1 file changed, 1 insertion(+)
Daniel Wagner 6a163b
Daniel Wagner 6a163b
--- a/drivers/scsi/qla2xxx/qla_edif.c
Daniel Wagner 6a163b
+++ b/drivers/scsi/qla2xxx/qla_edif.c
Daniel Wagner 6a163b
@@ -567,6 +567,7 @@ qla_edif_app_start(scsi_qla_host_t *vha,
Daniel Wagner 6a163b
 			qlt_schedule_sess_for_deletion(fcport);
Daniel Wagner 6a163b
 			qla_edif_sa_ctl_init(vha, fcport);
Daniel Wagner 6a163b
 		}
Daniel Wagner 6a163b
+		set_bit(RELOGIN_NEEDED, &vha->dpc_flags);
Daniel Wagner 6a163b
 	}
Daniel Wagner 6a163b
 
Daniel Wagner 6a163b
 	if (vha->pur_cinfo.enode_flags != ENODE_ACTIVE) {