aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_nportdisc.c
diff options
context:
space:
mode:
authorJames Smart <James.Smart@Emulex.Com>2006-03-07 15:02:37 -0500
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-03-12 09:54:29 -0500
commit488d1469b318e6bf2b907743d626008340bc4f6e (patch)
tree66853f237b78ebbe2b28b991c640aefe83297615 /drivers/scsi/lpfc/lpfc_nportdisc.c
parent071a651e28bfc1a66a885dc285792e335427a097 (diff)
[SCSI] lpfc 8.1.4 : Fix Discovery processing for NPorts that change their NPortId on the fly
Fix Discovery processing for NPorts that change their NPortId on the fly due to a cable swap. 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_nportdisc.c')
-rw-r--r--drivers/scsi/lpfc/lpfc_nportdisc.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/scsi/lpfc/lpfc_nportdisc.c b/drivers/scsi/lpfc/lpfc_nportdisc.c
index dba11d94d27d..8affc1543c6e 100644
--- a/drivers/scsi/lpfc/lpfc_nportdisc.c
+++ b/drivers/scsi/lpfc/lpfc_nportdisc.c
@@ -880,7 +880,7 @@ lpfc_rcv_plogi_adisc_issue(struct lpfc_hba * phba,
880 ndlp->nlp_prev_state = NLP_STE_ADISC_ISSUE; 880 ndlp->nlp_prev_state = NLP_STE_ADISC_ISSUE;
881 ndlp->nlp_state = NLP_STE_PLOGI_ISSUE; 881 ndlp->nlp_state = NLP_STE_PLOGI_ISSUE;
882 lpfc_nlp_list(phba, ndlp, NLP_PLOGI_LIST); 882 lpfc_nlp_list(phba, ndlp, NLP_PLOGI_LIST);
883 lpfc_issue_els_plogi(phba, ndlp, 0); 883 lpfc_issue_els_plogi(phba, ndlp->nlp_DID, 0);
884 884
885 return ndlp->nlp_state; 885 return ndlp->nlp_state;
886} 886}
@@ -1503,11 +1503,12 @@ lpfc_rcv_plogi_npr_node(struct lpfc_hba * phba,
1503 1503
1504 /* send PLOGI immediately, move to PLOGI issue state */ 1504 /* send PLOGI immediately, move to PLOGI issue state */
1505 if (!(ndlp->nlp_flag & NLP_DELAY_TMO)) { 1505 if (!(ndlp->nlp_flag & NLP_DELAY_TMO)) {
1506 ndlp->nlp_prev_state = NLP_STE_NPR_NODE; 1506 ndlp->nlp_prev_state = NLP_STE_NPR_NODE;
1507 ndlp->nlp_state = NLP_STE_PLOGI_ISSUE; 1507 ndlp->nlp_state = NLP_STE_PLOGI_ISSUE;
1508 lpfc_nlp_list(phba, ndlp, NLP_PLOGI_LIST); 1508 lpfc_nlp_list(phba, ndlp, NLP_PLOGI_LIST);
1509 lpfc_issue_els_plogi(phba, ndlp, 0); 1509 lpfc_issue_els_plogi(phba, ndlp->nlp_DID, 0);
1510 } 1510 }
1511
1511 return ndlp->nlp_state; 1512 return ndlp->nlp_state;
1512} 1513}
1513 1514
@@ -1539,8 +1540,9 @@ lpfc_rcv_prli_npr_node(struct lpfc_hba * phba,
1539 ndlp->nlp_prev_state = NLP_STE_NPR_NODE; 1540 ndlp->nlp_prev_state = NLP_STE_NPR_NODE;
1540 ndlp->nlp_state = NLP_STE_PLOGI_ISSUE; 1541 ndlp->nlp_state = NLP_STE_PLOGI_ISSUE;
1541 lpfc_nlp_list(phba, ndlp, NLP_PLOGI_LIST); 1542 lpfc_nlp_list(phba, ndlp, NLP_PLOGI_LIST);
1542 lpfc_issue_els_plogi(phba, ndlp, 0); 1543 lpfc_issue_els_plogi(phba, ndlp->nlp_DID, 0);
1543 } 1544 }
1545
1544 } 1546 }
1545 return ndlp->nlp_state; 1547 return ndlp->nlp_state;
1546} 1548}
@@ -1579,7 +1581,7 @@ lpfc_rcv_padisc_npr_node(struct lpfc_hba * phba,
1579 ndlp->nlp_prev_state = NLP_STE_NPR_NODE; 1581 ndlp->nlp_prev_state = NLP_STE_NPR_NODE;
1580 ndlp->nlp_state = NLP_STE_PLOGI_ISSUE; 1582 ndlp->nlp_state = NLP_STE_PLOGI_ISSUE;
1581 lpfc_nlp_list(phba, ndlp, NLP_PLOGI_LIST); 1583 lpfc_nlp_list(phba, ndlp, NLP_PLOGI_LIST);
1582 lpfc_issue_els_plogi(phba, ndlp, 0); 1584 lpfc_issue_els_plogi(phba, ndlp->nlp_DID, 0);
1583 } 1585 }
1584 } 1586 }
1585 return ndlp->nlp_state; 1587 return ndlp->nlp_state;