aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_els.c
diff options
context:
space:
mode:
authorJames Smart <james.smart@emulex.com>2010-07-14 15:31:37 -0400
committerJames Bottomley <James.Bottomley@suse.de>2010-07-28 10:05:41 -0400
commit3804dc84b8c11038ef75d97fd11e43658f623665 (patch)
tree03f6a03b3a489efb11ed40548a5b79b7da34034b /drivers/scsi/lpfc/lpfc_els.c
parent589a52d6a97e01c5ff6c244ee6c8ea57726c610f (diff)
[SCSI] lpfc 8.3.15: FCoE Related Fixes
FCoE Related Fixes - Correct find-next-FCF routine so that it searches at next FCF rather than current one. - Enhanced round-robin FCF failover algorithm to re-start on "New FCF" async event - Update the manner in which we look at FCFs while they may be in their discovery state. - Use LPFC_FCOE_NULL_VID macro when checkinf for valid vlan_id for FCF Signed-off-by: Alex Iannicelli <alex.iannicelli@emulex.com> Signed-off-by: James Smart <james.smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_els.c')
-rw-r--r--drivers/scsi/lpfc/lpfc_els.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index f80156246e51..afbed6bc31f0 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -813,18 +813,21 @@ lpfc_cmpl_els_flogi(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
813 */ 813 */
814 lpfc_printf_log(phba, KERN_WARNING, 814 lpfc_printf_log(phba, KERN_WARNING,
815 LOG_FIP | LOG_ELS, 815 LOG_FIP | LOG_ELS,
816 "2760 FLOGI exhausted FCF " 816 "2760 Completed one round "
817 "round robin failover list, " 817 "of FLOGI FCF round robin "
818 "retry FLOGI on the current " 818 "failover list, retry FLOGI "
819 "registered FCF index:%d\n", 819 "on currently registered "
820 "FCF index:%d\n",
820 phba->fcf.current_rec.fcf_indx); 821 phba->fcf.current_rec.fcf_indx);
821 spin_lock_irq(&phba->hbalock);
822 phba->fcf.fcf_flag &= ~FCF_DISCOVERY;
823 spin_unlock_irq(&phba->hbalock);
824 } else { 822 } else {
823 lpfc_printf_log(phba, KERN_INFO,
824 LOG_FIP | LOG_ELS,
825 "2794 FLOGI FCF round robin "
826 "failover to FCF index x%x\n",
827 fcf_index);
825 rc = lpfc_sli4_fcf_rr_read_fcf_rec(phba, 828 rc = lpfc_sli4_fcf_rr_read_fcf_rec(phba,
826 fcf_index); 829 fcf_index);
827 if (rc) { 830 if (rc)
828 lpfc_printf_log(phba, KERN_WARNING, 831 lpfc_printf_log(phba, KERN_WARNING,
829 LOG_FIP | LOG_ELS, 832 LOG_FIP | LOG_ELS,
830 "2761 FLOGI round " 833 "2761 FLOGI round "
@@ -833,10 +836,7 @@ lpfc_cmpl_els_flogi(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
833 "rc:x%x, fcf_index:" 836 "rc:x%x, fcf_index:"
834 "%d\n", rc, 837 "%d\n", rc,
835 phba->fcf.current_rec.fcf_indx); 838 phba->fcf.current_rec.fcf_indx);
836 spin_lock_irq(&phba->hbalock); 839 else
837 phba->fcf.fcf_flag &= ~FCF_DISCOVERY;
838 spin_unlock_irq(&phba->hbalock);
839 } else
840 goto out; 840 goto out;
841 } 841 }
842 } 842 }