aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_els.c
diff options
context:
space:
mode:
authorJames Smart <James.Smart@Emulex.Com>2009-10-02 15:16:45 -0400
committerJames Bottomley <James.Bottomley@suse.de>2009-12-04 13:01:40 -0500
commit6669f9bb902b8c3f5e33cb8c32c8c0eec6ed68ed (patch)
treee143e916abc71ff3c7edb7a5508d480391efc1ee /drivers/scsi/lpfc/lpfc_els.c
parent4d9ab994e214d35107017c342aca42477b137316 (diff)
[SCSI] lpfc 8.3.5: fix VPI registration, error clean up and add support for vlink events
This patch includes the following fixes and new features: - Fix mask size for CT field in WQE - Fix VPI base not used when unregistering VPI on port 1. - Fix UNREG_VPI mailbox command to unreg the correct VPI - Fixed Check for aborted els command - Fix error when trying to load driver with wrong firmware on FCoE HBA. - Fix bug with probe_one routines not putting the Scsi_Host back upon error - Add support for Clear Virtual Link Async Events - Add support for unsolicited CT exchange sequence abort - Add 0x0714 OCeXXXXX PCI ID 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.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index 4ea863f50650..489ddcd4c584 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -2712,12 +2712,16 @@ lpfc_els_retry(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
2712 !lpfc_error_lost_link(irsp)) { 2712 !lpfc_error_lost_link(irsp)) {
2713 /* FLOGI retry policy */ 2713 /* FLOGI retry policy */
2714 retry = 1; 2714 retry = 1;
2715 maxretry = 48; 2715 /* retry forever */
2716 if (cmdiocb->retry >= 32) 2716 maxretry = 0;
2717 if (cmdiocb->retry >= 100)
2718 delay = 5000;
2719 else if (cmdiocb->retry >= 32)
2717 delay = 1000; 2720 delay = 1000;
2718 } 2721 }
2719 2722
2720 if ((++cmdiocb->retry) >= maxretry) { 2723 cmdiocb->retry++;
2724 if (maxretry && (cmdiocb->retry >= maxretry)) {
2721 phba->fc_stat.elsRetryExceeded++; 2725 phba->fc_stat.elsRetryExceeded++;
2722 retry = 0; 2726 retry = 0;
2723 } 2727 }
@@ -5671,7 +5675,7 @@ dropit:
5671 * NULL - No vport with the matching @vpi found 5675 * NULL - No vport with the matching @vpi found
5672 * Otherwise - Address to the vport with the matching @vpi. 5676 * Otherwise - Address to the vport with the matching @vpi.
5673 **/ 5677 **/
5674static struct lpfc_vport * 5678struct lpfc_vport *
5675lpfc_find_vport_by_vpid(struct lpfc_hba *phba, uint16_t vpi) 5679lpfc_find_vport_by_vpid(struct lpfc_hba *phba, uint16_t vpi)
5676{ 5680{
5677 struct lpfc_vport *vport; 5681 struct lpfc_vport *vport;