diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_hbadisc.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_hbadisc.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c index d546206038bf..4a84803ee839 100644 --- a/drivers/scsi/lpfc/lpfc_hbadisc.c +++ b/drivers/scsi/lpfc/lpfc_hbadisc.c | |||
@@ -61,14 +61,7 @@ static void lpfc_disc_timeout_handler(struct lpfc_hba *); | |||
61 | static void | 61 | static void |
62 | lpfc_process_nodev_timeout(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp) | 62 | lpfc_process_nodev_timeout(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp) |
63 | { | 63 | { |
64 | if (!(ndlp->nlp_type & NLP_FABRIC)) { | 64 | int warn_on = 0; |
65 | /* Nodev timeout on NPort <nlp_DID> */ | ||
66 | lpfc_printf_log(phba, KERN_ERR, LOG_DISCOVERY, | ||
67 | "%d:0203 Nodev timeout on NPort x%x " | ||
68 | "Data: x%x x%x x%x\n", | ||
69 | phba->brd_no, ndlp->nlp_DID, ndlp->nlp_flag, | ||
70 | ndlp->nlp_state, ndlp->nlp_rpi); | ||
71 | } | ||
72 | 65 | ||
73 | spin_lock_irq(phba->host->host_lock); | 66 | spin_lock_irq(phba->host->host_lock); |
74 | if (!(ndlp->nlp_flag & NLP_NODEV_TMO)) { | 67 | if (!(ndlp->nlp_flag & NLP_NODEV_TMO)) { |
@@ -79,12 +72,27 @@ lpfc_process_nodev_timeout(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp) | |||
79 | ndlp->nlp_flag &= ~NLP_NODEV_TMO; | 72 | ndlp->nlp_flag &= ~NLP_NODEV_TMO; |
80 | 73 | ||
81 | if (ndlp->nlp_sid != NLP_NO_SID) { | 74 | if (ndlp->nlp_sid != NLP_NO_SID) { |
75 | warn_on = 1; | ||
82 | /* flush the target */ | 76 | /* flush the target */ |
83 | lpfc_sli_abort_iocb(phba, &phba->sli.ring[phba->sli.fcp_ring], | 77 | lpfc_sli_abort_iocb(phba, &phba->sli.ring[phba->sli.fcp_ring], |
84 | ndlp->nlp_sid, 0, 0, LPFC_CTX_TGT); | 78 | ndlp->nlp_sid, 0, 0, LPFC_CTX_TGT); |
85 | } | 79 | } |
86 | spin_unlock_irq(phba->host->host_lock); | 80 | spin_unlock_irq(phba->host->host_lock); |
87 | 81 | ||
82 | if (warn_on) { | ||
83 | lpfc_printf_log(phba, KERN_ERR, LOG_DISCOVERY, | ||
84 | "%d:0203 Nodev timeout on NPort x%x " | ||
85 | "Data: x%x x%x x%x\n", | ||
86 | phba->brd_no, ndlp->nlp_DID, ndlp->nlp_flag, | ||
87 | ndlp->nlp_state, ndlp->nlp_rpi); | ||
88 | } else { | ||
89 | lpfc_printf_log(phba, KERN_INFO, LOG_DISCOVERY, | ||
90 | "%d:0204 Nodev timeout on NPort x%x " | ||
91 | "Data: x%x x%x x%x\n", | ||
92 | phba->brd_no, ndlp->nlp_DID, ndlp->nlp_flag, | ||
93 | ndlp->nlp_state, ndlp->nlp_rpi); | ||
94 | } | ||
95 | |||
88 | lpfc_disc_state_machine(phba, ndlp, NULL, NLP_EVT_DEVICE_RM); | 96 | lpfc_disc_state_machine(phba, ndlp, NULL, NLP_EVT_DEVICE_RM); |
89 | return; | 97 | return; |
90 | } | 98 | } |