Commit 088d09d4 authored by Giridhar Malavali's avatar Giridhar Malavali Committed by Martin K. Petersen

qla2xxx: Set FLOGI retry in additional firmware options for P2P (N2N) mode.

When VP decoupling enabled, there could be a window where, FLOGI from initiators
can be dropped before VP0 is enabled, causing link level recovery.
Retry FLOGI to avoid link level recovery.
Signed-off-by: default avatarGiridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: default avatarHimanshu Madhani <himanshu.madhani@qlogic.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent a29b3dd7
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
* | | | 0x016e-0x0170 | * | | | 0x016e-0x0170 |
* | Mailbox commands | 0x1192 | | * | Mailbox commands | 0x1192 | |
* | | | | * | | | |
* | Device Discovery | 0x2016 | 0x2020-0x2022, | * | Device Discovery | 0x2003 | 0x2016 |
* | | | 0x2011-0x2012, | * | | | 0x2011-0x2012, |
* | | | 0x2099-0x20a4 | * | | | 0x2099-0x20a4 |
* | Queue Command and IO tracing | 0x3074 | 0x300b | * | Queue Command and IO tracing | 0x3074 | 0x300b |
......
...@@ -2053,6 +2053,14 @@ qla2x00_update_fw_options(scsi_qla_host_t *vha) ...@@ -2053,6 +2053,14 @@ qla2x00_update_fw_options(scsi_qla_host_t *vha)
if (IS_QLA6312(ha)) if (IS_QLA6312(ha))
ha->fw_options[2] |= BIT_13; ha->fw_options[2] |= BIT_13;
/* Set Retry FLOGI in case of P2P connection */
if (ha->operating_mode == P2P) {
ha->fw_options[2] |= BIT_3;
ql_dbg(ql_dbg_disc, vha, 0x2100,
"(%s): Setting FLOGI retry BIT in fw_options[2]: 0x%x\n",
__func__, ha->fw_options[2]);
}
/* Update firmware options. */ /* Update firmware options. */
qla2x00_set_fw_options(vha, ha->fw_options); qla2x00_set_fw_options(vha, ha->fw_options);
} }
...@@ -2070,6 +2078,14 @@ qla24xx_update_fw_options(scsi_qla_host_t *vha) ...@@ -2070,6 +2078,14 @@ qla24xx_update_fw_options(scsi_qla_host_t *vha)
if (ql2xfwholdabts) if (ql2xfwholdabts)
ha->fw_options[3] |= BIT_12; ha->fw_options[3] |= BIT_12;
/* Set Retry FLOGI in case of P2P connection */
if (ha->operating_mode == P2P) {
ha->fw_options[2] |= BIT_3;
ql_dbg(ql_dbg_disc, vha, 0x2101,
"(%s): Setting FLOGI retry BIT in fw_options[2]: 0x%x\n",
__func__, ha->fw_options[2]);
}
/* Update Serial Link options. */ /* Update Serial Link options. */
if ((le16_to_cpu(ha->fw_seriallink_options24[0]) & BIT_0) == 0) if ((le16_to_cpu(ha->fw_seriallink_options24[0]) & BIT_0) == 0)
return; return;
...@@ -6513,6 +6529,14 @@ qla81xx_update_fw_options(scsi_qla_host_t *vha) ...@@ -6513,6 +6529,14 @@ qla81xx_update_fw_options(scsi_qla_host_t *vha)
if (ql2xfwholdabts) if (ql2xfwholdabts)
ha->fw_options[3] |= BIT_12; ha->fw_options[3] |= BIT_12;
/* Set Retry FLOGI in case of P2P connection */
if (ha->operating_mode == P2P) {
ha->fw_options[2] |= BIT_3;
ql_dbg(ql_dbg_disc, vha, 0x2103,
"(%s): Setting FLOGI retry BIT in fw_options[2]: 0x%x\n",
__func__, ha->fw_options[2]);
}
if (!ql2xetsenable) if (!ql2xetsenable)
goto out; goto out;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment