diff options
author | Giridhar Malavali <giridhar.malavali@qlogic.com> | 2016-07-06 11:14:20 -0400 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2016-07-15 15:31:31 -0400 |
commit | 088d09d465a1a31929b98f3363965c91e8ab4c65 (patch) | |
tree | 1af42dc298ae38006a6fd07e20fc3cbdbdd3892a /drivers/scsi/qla2xxx/qla_init.c | |
parent | a29b3dd7aa14facc902b40b8b5c4dccbfb2ad7d0 (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.c | 24 |
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 | ||