aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_init.c
diff options
context:
space:
mode:
authorGiridhar Malavali <giridhar.malavali@qlogic.com>2016-07-06 11:14:20 -0400
committerMartin K. Petersen <martin.petersen@oracle.com>2016-07-15 15:31:31 -0400
commit088d09d465a1a31929b98f3363965c91e8ab4c65 (patch)
tree1af42dc298ae38006a6fd07e20fc3cbdbdd3892a /drivers/scsi/qla2xxx/qla_init.c
parenta29b3dd7aa14facc902b40b8b5c4dccbfb2ad7d0 (diff)
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: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: Himanshu Madhani <himanshu.madhani@qlogic.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_init.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_init.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index c56cdb35f3ed..a3685b683688 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -2053,6 +2053,14 @@ qla2x00_update_fw_options(scsi_qla_host_t *vha)
2053 if (IS_QLA6312(ha)) 2053 if (IS_QLA6312(ha))
2054 ha->fw_options[2] |= BIT_13; 2054 ha->fw_options[2] |= BIT_13;
2055 2055
2056 /* Set Retry FLOGI in case of P2P connection */
2057 if (ha->operating_mode == P2P) {
2058 ha->fw_options[2] |= BIT_3;
2059 ql_dbg(ql_dbg_disc, vha, 0x2100,
2060 "(%s): Setting FLOGI retry BIT in fw_options[2]: 0x%x\n",
2061 __func__, ha->fw_options[2]);
2062 }
2063
2056 /* Update firmware options. */ 2064 /* Update firmware options. */
2057 qla2x00_set_fw_options(vha, ha->fw_options); 2065 qla2x00_set_fw_options(vha, ha->fw_options);
2058} 2066}
@@ -2070,6 +2078,14 @@ qla24xx_update_fw_options(scsi_qla_host_t *vha)
2070 if (ql2xfwholdabts) 2078 if (ql2xfwholdabts)
2071 ha->fw_options[3] |= BIT_12; 2079 ha->fw_options[3] |= BIT_12;
2072 2080
2081 /* Set Retry FLOGI in case of P2P connection */
2082 if (ha->operating_mode == P2P) {
2083 ha->fw_options[2] |= BIT_3;
2084 ql_dbg(ql_dbg_disc, vha, 0x2101,
2085 "(%s): Setting FLOGI retry BIT in fw_options[2]: 0x%x\n",
2086 __func__, ha->fw_options[2]);
2087 }
2088
2073 /* Update Serial Link options. */ 2089 /* Update Serial Link options. */
2074 if ((le16_to_cpu(ha->fw_seriallink_options24[0]) & BIT_0) == 0) 2090 if ((le16_to_cpu(ha->fw_seriallink_options24[0]) & BIT_0) == 0)
2075 return; 2091 return;
@@ -6513,6 +6529,14 @@ qla81xx_update_fw_options(scsi_qla_host_t *vha)
6513 if (ql2xfwholdabts) 6529 if (ql2xfwholdabts)
6514 ha->fw_options[3] |= BIT_12; 6530 ha->fw_options[3] |= BIT_12;
6515 6531
6532 /* Set Retry FLOGI in case of P2P connection */
6533 if (ha->operating_mode == P2P) {
6534 ha->fw_options[2] |= BIT_3;
6535 ql_dbg(ql_dbg_disc, vha, 0x2103,
6536 "(%s): Setting FLOGI retry BIT in fw_options[2]: 0x%x\n",
6537 __func__, ha->fw_options[2]);
6538 }
6539
6516 if (!ql2xetsenable) 6540 if (!ql2xetsenable)
6517 goto out; 6541 goto out;
6518 6542