aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/lpfc/lpfc_els.c4
-rw-r--r--drivers/scsi/lpfc/lpfc_init.c2
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index bcc29ec126d..20f1a0713db 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -720,6 +720,7 @@ lpfc_cmpl_els_plogi(struct lpfc_hba * phba, struct lpfc_iocbq * cmdiocb,
720 /* Do not call DSM for lpfc_els_abort'ed ELS cmds */ 720 /* Do not call DSM for lpfc_els_abort'ed ELS cmds */
721 if ((irsp->ulpStatus == IOSTAT_LOCAL_REJECT) && 721 if ((irsp->ulpStatus == IOSTAT_LOCAL_REJECT) &&
722 ((irsp->un.ulpWord[4] == IOERR_SLI_ABORTED) || 722 ((irsp->un.ulpWord[4] == IOERR_SLI_ABORTED) ||
723 (irsp->un.ulpWord[4] == IOERR_LINK_DOWN) ||
723 (irsp->un.ulpWord[4] == IOERR_SLI_DOWN))) { 724 (irsp->un.ulpWord[4] == IOERR_SLI_DOWN))) {
724 disc = (ndlp->nlp_flag & NLP_NPR_2B_DISC); 725 disc = (ndlp->nlp_flag & NLP_NPR_2B_DISC);
725 } 726 }
@@ -869,6 +870,7 @@ lpfc_cmpl_els_prli(struct lpfc_hba * phba, struct lpfc_iocbq * cmdiocb,
869 /* Do not call DSM for lpfc_els_abort'ed ELS cmds */ 870 /* Do not call DSM for lpfc_els_abort'ed ELS cmds */
870 if ((irsp->ulpStatus == IOSTAT_LOCAL_REJECT) && 871 if ((irsp->ulpStatus == IOSTAT_LOCAL_REJECT) &&
871 ((irsp->un.ulpWord[4] == IOERR_SLI_ABORTED) || 872 ((irsp->un.ulpWord[4] == IOERR_SLI_ABORTED) ||
873 (irsp->un.ulpWord[4] == IOERR_LINK_DOWN) ||
872 (irsp->un.ulpWord[4] == IOERR_SLI_DOWN))) { 874 (irsp->un.ulpWord[4] == IOERR_SLI_DOWN))) {
873 goto out; 875 goto out;
874 } 876 }
@@ -1054,6 +1056,7 @@ lpfc_cmpl_els_adisc(struct lpfc_hba * phba, struct lpfc_iocbq * cmdiocb,
1054 /* Do not call DSM for lpfc_els_abort'ed ELS cmds */ 1056 /* Do not call DSM for lpfc_els_abort'ed ELS cmds */
1055 if ((irsp->ulpStatus == IOSTAT_LOCAL_REJECT) && 1057 if ((irsp->ulpStatus == IOSTAT_LOCAL_REJECT) &&
1056 ((irsp->un.ulpWord[4] == IOERR_SLI_ABORTED) || 1058 ((irsp->un.ulpWord[4] == IOERR_SLI_ABORTED) ||
1059 (irsp->un.ulpWord[4] == IOERR_LINK_DOWN) ||
1057 (irsp->un.ulpWord[4] == IOERR_SLI_DOWN))) { 1060 (irsp->un.ulpWord[4] == IOERR_SLI_DOWN))) {
1058 disc = (ndlp->nlp_flag & NLP_NPR_2B_DISC); 1061 disc = (ndlp->nlp_flag & NLP_NPR_2B_DISC);
1059 } 1062 }
@@ -1205,6 +1208,7 @@ lpfc_cmpl_els_logo(struct lpfc_hba * phba, struct lpfc_iocbq * cmdiocb,
1205 /* Do not call DSM for lpfc_els_abort'ed ELS cmds */ 1208 /* Do not call DSM for lpfc_els_abort'ed ELS cmds */
1206 if ((irsp->ulpStatus == IOSTAT_LOCAL_REJECT) && 1209 if ((irsp->ulpStatus == IOSTAT_LOCAL_REJECT) &&
1207 ((irsp->un.ulpWord[4] == IOERR_SLI_ABORTED) || 1210 ((irsp->un.ulpWord[4] == IOERR_SLI_ABORTED) ||
1211 (irsp->un.ulpWord[4] == IOERR_LINK_DOWN) ||
1208 (irsp->un.ulpWord[4] == IOERR_SLI_DOWN))) { 1212 (irsp->un.ulpWord[4] == IOERR_SLI_DOWN))) {
1209 goto out; 1213 goto out;
1210 } 1214 }
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index 3eebe663a2e..4d4e217edd8 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -563,6 +563,8 @@ lpfc_handle_latt(struct lpfc_hba * phba)
563 563
564 rc = -EIO; 564 rc = -EIO;
565 565
566 /* Cleanup any outstanding ELS commands */
567 lpfc_els_flush_cmd(phba);
566 568
567 psli->slistat.link_event++; 569 psli->slistat.link_event++;
568 lpfc_read_la(phba, pmb, mp); 570 lpfc_read_la(phba, pmb, mp);