scsi: qla2xxx: Fix point-to-point (N2N) device discovery issue
authorArun Easi <aeasi@marvell.com>
Tue, 29 Sep 2020 10:21:51 +0000 (03:21 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 30 Sep 2020 03:22:19 +0000 (23:22 -0400)
Driver was using a shorter timeout waiting for PLOGI from the peer in
point-to-point configurations. Some devices takes some time (~4 seconds) to
initiate the PLOGI. This peer initiating PLOGI is when the peer has a
higher P-WWN.

Increase the wait time based on N2N R_A_TOV.

Link: https://lore.kernel.org/r/20200929102152.32278-7-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Arun Easi <aeasi@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_def.h
drivers/scsi/qla2xxx/qla_mbx.c
drivers/scsi/qla2xxx/qla_os.c

index 98814a9a8ea65e7eb7334c286fda8fb1c9e9f3f0..b0b4228050e935a3308e45a4d5af4431d46814ef 100644 (file)
@@ -5147,6 +5147,8 @@ struct sff_8247_a0 {
         ha->current_topology == ISP_CFG_N || \
         !ha->current_topology)
 
+#define QLA_N2N_WAIT_TIME      5 /* 2 * ra_tov(n2n) + 1 */
+
 #define NVME_TYPE(fcport) \
        (fcport->fc4_type & FS_FC4TYPE_NVME) \
 
index c1580eec6b276cab1e4ed4c1e63f8a9f1b81c42e..bf858179d23cc0a84e641b384d479e24ef5faea1 100644 (file)
@@ -3994,7 +3994,8 @@ qla24xx_report_id_acquisition(scsi_qla_host_t *vha,
 
                        if (fcport) {
                                fcport->plogi_nack_done_deadline = jiffies + HZ;
-                               fcport->dm_login_expire = jiffies + 2*HZ;
+                               fcport->dm_login_expire = jiffies +
+                                       QLA_N2N_WAIT_TIME * HZ;
                                fcport->scan_state = QLA_FCPORT_FOUND;
                                fcport->n2n_flag = 1;
                                fcport->keep_nport_handle = 1;
index 9d6292928c329af33701b63d499537b59121d825..df8e50af2b96497cbdbf7fef00afbb352992689e 100644 (file)
@@ -5097,6 +5097,8 @@ void qla24xx_create_new_sess(struct scsi_qla_host *vha, struct qla_work_evt *e)
 
                        fcport->fc4_type = e->u.new_sess.fc4_type;
                        if (e->u.new_sess.fc4_type & FS_FCP_IS_N2N) {
+                               fcport->dm_login_expire = jiffies +
+                                       QLA_N2N_WAIT_TIME * HZ;
                                fcport->fc4_type = FS_FC4TYPE_FCP;
                                fcport->n2n_flag = 1;
                                if (vha->flags.nvme_enabled)