Commit 26979ced authored by James Smart's avatar James Smart Committed by James Bottomley

[SCSI] lpfc 8.3.35: Fixed not checking solicition in progress bit when verifying FCF record for use

Signed-off-by: default avatarJames Smart <james.smart@emulex.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent 292098be
...@@ -1506,9 +1506,10 @@ lpfc_match_fcf_conn_list(struct lpfc_hba *phba, ...@@ -1506,9 +1506,10 @@ lpfc_match_fcf_conn_list(struct lpfc_hba *phba,
} }
} }
/* If FCF not available return 0 */ /* FCF not valid/available or solicitation in progress */
if (!bf_get(lpfc_fcf_record_fcf_avail, new_fcf_record) || if (!bf_get(lpfc_fcf_record_fcf_avail, new_fcf_record) ||
!bf_get(lpfc_fcf_record_fcf_valid, new_fcf_record)) !bf_get(lpfc_fcf_record_fcf_valid, new_fcf_record) ||
bf_get(lpfc_fcf_record_fcf_sol, new_fcf_record))
return 0; return 0;
if (!(phba->hba_flag & HBA_FIP_SUPPORT)) { if (!(phba->hba_flag & HBA_FIP_SUPPORT)) {
...@@ -1842,6 +1843,7 @@ lpfc_sli4_log_fcf_record_info(struct lpfc_hba *phba, ...@@ -1842,6 +1843,7 @@ lpfc_sli4_log_fcf_record_info(struct lpfc_hba *phba,
"\tFCF_Index : x%x\n" "\tFCF_Index : x%x\n"
"\tFCF_Avail : x%x\n" "\tFCF_Avail : x%x\n"
"\tFCF_Valid : x%x\n" "\tFCF_Valid : x%x\n"
"\tFCF_SOL : x%x\n"
"\tFIP_Priority : x%x\n" "\tFIP_Priority : x%x\n"
"\tMAC_Provider : x%x\n" "\tMAC_Provider : x%x\n"
"\tLowest VLANID : x%x\n" "\tLowest VLANID : x%x\n"
...@@ -1852,6 +1854,7 @@ lpfc_sli4_log_fcf_record_info(struct lpfc_hba *phba, ...@@ -1852,6 +1854,7 @@ lpfc_sli4_log_fcf_record_info(struct lpfc_hba *phba,
bf_get(lpfc_fcf_record_fcf_index, fcf_record), bf_get(lpfc_fcf_record_fcf_index, fcf_record),
bf_get(lpfc_fcf_record_fcf_avail, fcf_record), bf_get(lpfc_fcf_record_fcf_avail, fcf_record),
bf_get(lpfc_fcf_record_fcf_valid, fcf_record), bf_get(lpfc_fcf_record_fcf_valid, fcf_record),
bf_get(lpfc_fcf_record_fcf_sol, fcf_record),
fcf_record->fip_priority, fcf_record->fip_priority,
bf_get(lpfc_fcf_record_mac_addr_prov, fcf_record), bf_get(lpfc_fcf_record_mac_addr_prov, fcf_record),
vlan_id, vlan_id,
...@@ -2185,12 +2188,14 @@ lpfc_mbx_cmpl_fcf_scan_read_fcf_rec(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) ...@@ -2185,12 +2188,14 @@ lpfc_mbx_cmpl_fcf_scan_read_fcf_rec(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq)
new_fcf_record)); new_fcf_record));
lpfc_printf_log(phba, KERN_WARNING, LOG_FIP, lpfc_printf_log(phba, KERN_WARNING, LOG_FIP,
"2781 FCF (x%x) failed connection " "2781 FCF (x%x) failed connection "
"list check: (x%x/x%x)\n", "list check: (x%x/x%x/%x)\n",
bf_get(lpfc_fcf_record_fcf_index, bf_get(lpfc_fcf_record_fcf_index,
new_fcf_record), new_fcf_record),
bf_get(lpfc_fcf_record_fcf_avail, bf_get(lpfc_fcf_record_fcf_avail,
new_fcf_record), new_fcf_record),
bf_get(lpfc_fcf_record_fcf_valid, bf_get(lpfc_fcf_record_fcf_valid,
new_fcf_record),
bf_get(lpfc_fcf_record_fcf_sol,
new_fcf_record)); new_fcf_record));
if ((phba->fcf.fcf_flag & FCF_IN_USE) && if ((phba->fcf.fcf_flag & FCF_IN_USE) &&
lpfc_sli4_fcf_record_match(phba, &phba->fcf.current_rec, lpfc_sli4_fcf_record_match(phba, &phba->fcf.current_rec,
......
...@@ -1695,8 +1695,14 @@ struct fcf_record { ...@@ -1695,8 +1695,14 @@ struct fcf_record {
#define lpfc_fcf_record_fc_map_2_MASK 0x000000FF #define lpfc_fcf_record_fc_map_2_MASK 0x000000FF
#define lpfc_fcf_record_fc_map_2_WORD word7 #define lpfc_fcf_record_fc_map_2_WORD word7
#define lpfc_fcf_record_fcf_valid_SHIFT 24 #define lpfc_fcf_record_fcf_valid_SHIFT 24
#define lpfc_fcf_record_fcf_valid_MASK 0x000000FF #define lpfc_fcf_record_fcf_valid_MASK 0x00000001
#define lpfc_fcf_record_fcf_valid_WORD word7 #define lpfc_fcf_record_fcf_valid_WORD word7
#define lpfc_fcf_record_fcf_fc_SHIFT 25
#define lpfc_fcf_record_fcf_fc_MASK 0x00000001
#define lpfc_fcf_record_fcf_fc_WORD word7
#define lpfc_fcf_record_fcf_sol_SHIFT 31
#define lpfc_fcf_record_fcf_sol_MASK 0x00000001
#define lpfc_fcf_record_fcf_sol_WORD word7
uint32_t word8; uint32_t word8;
#define lpfc_fcf_record_fcf_index_SHIFT 0 #define lpfc_fcf_record_fcf_index_SHIFT 0
#define lpfc_fcf_record_fcf_index_MASK 0x0000FFFF #define lpfc_fcf_record_fcf_index_MASK 0x0000FFFF
......
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