diff options
author | James Smart <James.Smart@Emulex.Com> | 2009-10-02 15:16:45 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-12-04 13:01:40 -0500 |
commit | 6669f9bb902b8c3f5e33cb8c32c8c0eec6ed68ed (patch) | |
tree | e143e916abc71ff3c7edb7a5508d480391efc1ee /drivers/scsi/lpfc/lpfc_els.c | |
parent | 4d9ab994e214d35107017c342aca42477b137316 (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.c | 12 |
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 | **/ |
5674 | static struct lpfc_vport * | 5678 | struct lpfc_vport * |
5675 | lpfc_find_vport_by_vpid(struct lpfc_hba *phba, uint16_t vpi) | 5679 | lpfc_find_vport_by_vpid(struct lpfc_hba *phba, uint16_t vpi) |
5676 | { | 5680 | { |
5677 | struct lpfc_vport *vport; | 5681 | struct lpfc_vport *vport; |