summaryrefslogtreecommitdiff
path: root/drivers/scsi/lpfc/lpfc_hbadisc.c
diff options
context:
space:
mode:
authorJames Smart <James.Smart@Emulex.Com>2006-03-07 23:04:01 +0300
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-03-12 17:56:13 +0300
commitfdcebe282fd8654381852260efec267eff8002fb (patch)
tree6cde5a6376cfc4880be192a41a5b84407fad0d38 /drivers/scsi/lpfc/lpfc_hbadisc.c
parent488d1469b318e6bf2b907743d626008340bc4f6e (diff)
downloadlinux-fdcebe282fd8654381852260efec267eff8002fb.tar.xz
[SCSI] lpfc 8.1.4 : Fixed RSCN handling when a PLOGI is in retry
Fixed RSCN handling when a PLOGI is in retry. 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_hbadisc.c')
-rw-r--r--drivers/scsi/lpfc/lpfc_hbadisc.c24
1 files changed, 4 insertions, 20 deletions
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index 2b227b363ae3..e15120d21aaa 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -1152,13 +1152,9 @@ lpfc_nlp_list(struct lpfc_hba * phba, struct lpfc_nodelist * nlp, int list)
/* Stop delay tmo if taking node off NPR list */
if ((nlp->nlp_flag & NLP_DELAY_TMO) &&
(list != NLP_NPR_LIST)) {
- nlp->nlp_flag &= ~NLP_DELAY_TMO;
- nlp->nlp_last_elscmd = 0;
spin_unlock_irq(phba->host->host_lock);
- del_timer_sync(&nlp->nlp_delayfunc);
+ lpfc_cancel_retry_delay_tmo(phba, nlp);
spin_lock_irq(phba->host->host_lock);
- if (!list_empty(&nlp->els_retry_evt.evt_listp))
- list_del_init(&nlp->els_retry_evt.evt_listp);
}
break;
}
@@ -1598,13 +1594,7 @@ lpfc_nlp_remove(struct lpfc_hba * phba, struct lpfc_nodelist * ndlp)
if (ndlp->nlp_flag & NLP_DELAY_TMO) {
- spin_lock_irq(phba->host->host_lock);
- ndlp->nlp_flag &= ~NLP_DELAY_TMO;
- spin_unlock_irq(phba->host->host_lock);
- ndlp->nlp_last_elscmd = 0;
- del_timer_sync(&ndlp->nlp_delayfunc);
- if (!list_empty(&ndlp->els_retry_evt.evt_listp))
- list_del_init(&ndlp->els_retry_evt.evt_listp);
+ lpfc_cancel_retry_delay_tmo(phba, ndlp);
}
if (ndlp->nlp_disc_refcnt) {
@@ -1896,14 +1886,8 @@ lpfc_setup_disc_node(struct lpfc_hba * phba, uint32_t did)
/* Since this node is marked for discovery,
* delay timeout is not needed.
*/
- if (ndlp->nlp_flag & NLP_DELAY_TMO) {
- ndlp->nlp_flag &= ~NLP_DELAY_TMO;
- del_timer_sync(&ndlp->nlp_delayfunc);
- if (!list_empty(&ndlp->els_retry_evt.
- evt_listp))
- list_del_init(&ndlp->els_retry_evt.
- evt_listp);
- }
+ if (ndlp->nlp_flag & NLP_DELAY_TMO)
+ lpfc_cancel_retry_delay_tmo(phba, ndlp);
} else {
ndlp->nlp_flag &= ~NLP_NPR_2B_DISC;
ndlp = NULL;