diff options
author | James Smart <James.Smart@Emulex.Com> | 2006-12-02 13:33:57 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-12-03 10:28:43 -0500 |
commit | 2fb9bd8b9cbe9a8d70bf5f43a9ee6a4fa565ed5a (patch) | |
tree | b16c87c100f7645f3872213f8e1203505dcbc4de /drivers/scsi/lpfc/lpfc_els.c | |
parent | 0e5d030bef4de3e35bcca35dd9465e6672128570 (diff) |
[SCSI] lpfc 8.1.11 : Discovery Fixes
Discovery Fixes:
- Prevent starting discovery of a node if discovery is in progress.
- Code improvement (reduction) for lpfc_findnode_did().
- Update discovery to send RFF to Fabric on link up
- Bypass unique WWN checks for fabric addresses
- Add ndlp to plogi list prior to issuing the plogi els command
Signed-off-by: James Smart <James.Smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_els.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_els.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c index 71864cdc6c71..60af1c60fe9b 100644 --- a/drivers/scsi/lpfc/lpfc_els.c +++ b/drivers/scsi/lpfc/lpfc_els.c | |||
@@ -657,6 +657,12 @@ lpfc_plogi_confirm_nport(struct lpfc_hba * phba, struct lpfc_dmabuf *prsp, | |||
657 | uint8_t name[sizeof (struct lpfc_name)]; | 657 | uint8_t name[sizeof (struct lpfc_name)]; |
658 | uint32_t rc; | 658 | uint32_t rc; |
659 | 659 | ||
660 | /* Fabric nodes can have the same WWPN so we don't bother searching | ||
661 | * by WWPN. Just return the ndlp that was given to us. | ||
662 | */ | ||
663 | if (ndlp->nlp_type & NLP_FABRIC) | ||
664 | return ndlp; | ||
665 | |||
660 | lp = (uint32_t *) prsp->virt; | 666 | lp = (uint32_t *) prsp->virt; |
661 | sp = (struct serv_parm *) ((uint8_t *) lp + sizeof (uint32_t)); | 667 | sp = (struct serv_parm *) ((uint8_t *) lp + sizeof (uint32_t)); |
662 | memset(name, 0, sizeof (struct lpfc_name)); | 668 | memset(name, 0, sizeof (struct lpfc_name)); |
@@ -2644,6 +2650,7 @@ lpfc_els_handle_rscn(struct lpfc_hba * phba) | |||
2644 | ndlp->nlp_type |= NLP_FABRIC; | 2650 | ndlp->nlp_type |= NLP_FABRIC; |
2645 | ndlp->nlp_prev_state = ndlp->nlp_state; | 2651 | ndlp->nlp_prev_state = ndlp->nlp_state; |
2646 | ndlp->nlp_state = NLP_STE_PLOGI_ISSUE; | 2652 | ndlp->nlp_state = NLP_STE_PLOGI_ISSUE; |
2653 | lpfc_nlp_list(phba, ndlp, NLP_PLOGI_LIST); | ||
2647 | lpfc_issue_els_plogi(phba, NameServer_DID, 0); | 2654 | lpfc_issue_els_plogi(phba, NameServer_DID, 0); |
2648 | /* Wait for NameServer login cmpl before we can | 2655 | /* Wait for NameServer login cmpl before we can |
2649 | continue */ | 2656 | continue */ |