Message ID | 20200928055023.3950-7-njavali@marvell.com |
---|---|
State | New |
Headers | show |
Series | qla2xxx bug fixes | expand |
On 9/28/20 12:50 AM, Nilesh Javali wrote: > From: Arun Easi <aeasi@marvell.com> > > 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. > > Signed-off-by: Arun Easi <aeasi@marvell.com> > Signed-off-by: Nilesh Javali <njavali@marvell.com> > --- > drivers/scsi/qla2xxx/qla_def.h | 2 ++ > drivers/scsi/qla2xxx/qla_mbx.c | 3 ++- > drivers/scsi/qla2xxx/qla_os.c | 2 ++ > 3 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h > index 98814a9a8ea6..b0b4228050e9 100644 > --- a/drivers/scsi/qla2xxx/qla_def.h > +++ b/drivers/scsi/qla2xxx/qla_def.h > @@ -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) \ > > diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c > index d861d025bce1..d90880d5cf46 100644 > --- a/drivers/scsi/qla2xxx/qla_mbx.c > +++ b/drivers/scsi/qla2xxx/qla_mbx.c > @@ -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; > diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c > index 6c4dc8eff8b8..b7a0feecac76 100644 > --- a/drivers/scsi/qla2xxx/qla_os.c > +++ b/drivers/scsi/qla2xxx/qla_os.c > @@ -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) > Looks Good. Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 98814a9a8ea6..b0b4228050e9 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h @@ -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) \ diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index d861d025bce1..d90880d5cf46 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c @@ -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; diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 6c4dc8eff8b8..b7a0feecac76 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -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)