[SCSI] lpfc 8.3.35: Fixed not checking solicition in progress bit when verifying...
authorJames Smart <james.smart@emulex.com>
Sat, 29 Sep 2012 15:31:55 +0000 (11:31 -0400)
committerJames Bottomley <JBottomley@Parallels.com>
Mon, 8 Oct 2012 11:11:16 +0000 (12:11 +0100)
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/lpfc/lpfc_hbadisc.c
drivers/scsi/lpfc/lpfc_hw4.h

index e9845d2ecf10db6f6fd9eca8681aba1febee305a..d7096ad94d3fd2781fe44c5cbb1cf0e52f508199 100644 (file)
@@ -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) ||
-               !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;
 
        if (!(phba->hba_flag & HBA_FIP_SUPPORT)) {
@@ -1842,6 +1843,7 @@ lpfc_sli4_log_fcf_record_info(struct lpfc_hba *phba,
                        "\tFCF_Index     : x%x\n"
                        "\tFCF_Avail     : x%x\n"
                        "\tFCF_Valid     : x%x\n"
+                       "\tFCF_SOL       : x%x\n"
                        "\tFIP_Priority  : x%x\n"
                        "\tMAC_Provider  : x%x\n"
                        "\tLowest VLANID : x%x\n"
@@ -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_avail, fcf_record),
                        bf_get(lpfc_fcf_record_fcf_valid, fcf_record),
+                       bf_get(lpfc_fcf_record_fcf_sol, fcf_record),
                        fcf_record->fip_priority,
                        bf_get(lpfc_fcf_record_mac_addr_prov, fcf_record),
                        vlan_id,
@@ -2185,12 +2188,14 @@ lpfc_mbx_cmpl_fcf_scan_read_fcf_rec(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq)
                                               new_fcf_record));
                lpfc_printf_log(phba, KERN_WARNING, LOG_FIP,
                                "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,
                                       new_fcf_record),
                                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_sol,
                                       new_fcf_record));
                if ((phba->fcf.fcf_flag & FCF_IN_USE) &&
                    lpfc_sli4_fcf_record_match(phba, &phba->fcf.current_rec,
index 834b699cac7673db4972c82381bdf5e0a222bab0..e2838e90ddfca3f95bec328246929431275e706c 100644 (file)
@@ -1695,8 +1695,14 @@ struct fcf_record {
 #define lpfc_fcf_record_fc_map_2_MASK          0x000000FF
 #define lpfc_fcf_record_fc_map_2_WORD          word7
 #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_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;
 #define lpfc_fcf_record_fcf_index_SHIFT                0
 #define lpfc_fcf_record_fcf_index_MASK         0x0000FFFF