[SCSI] lpfc 8.1.4 : Fixed a timer panic due to timer firing after freeing ndlp
Fixed a timer panic due to timer firing after freeing ndlp Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
parent
fdcebe282f
commit
1a169689c2
|
@ -1523,6 +1523,12 @@ lpfc_els_retry_delay_handler(struct lpfc_nodelist *ndlp)
|
||||||
|
|
||||||
ndlp->nlp_flag &= ~NLP_DELAY_TMO;
|
ndlp->nlp_flag &= ~NLP_DELAY_TMO;
|
||||||
spin_unlock_irq(phba->host->host_lock);
|
spin_unlock_irq(phba->host->host_lock);
|
||||||
|
/*
|
||||||
|
* If a discovery event readded nlp_delayfunc after timer
|
||||||
|
* firing and before processing the timer, cancel the
|
||||||
|
* nlp_delayfunc.
|
||||||
|
*/
|
||||||
|
del_timer_sync(&ndlp->nlp_delayfunc);
|
||||||
retry = ndlp->nlp_retry;
|
retry = ndlp->nlp_retry;
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
|
|
|
@ -68,6 +68,15 @@ lpfc_process_nodev_timeout(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If a discovery event readded nodev_timer after timer
|
||||||
|
* firing and before processing the timer, cancel the
|
||||||
|
* nlp_tmofunc.
|
||||||
|
*/
|
||||||
|
spin_unlock_irq(phba->host->host_lock);
|
||||||
|
del_timer_sync(&ndlp->nlp_tmofunc);
|
||||||
|
spin_lock_irq(phba->host->host_lock);
|
||||||
|
|
||||||
ndlp->nlp_flag &= ~NLP_NODEV_TMO;
|
ndlp->nlp_flag &= ~NLP_NODEV_TMO;
|
||||||
|
|
||||||
if (ndlp->nlp_sid != NLP_NO_SID) {
|
if (ndlp->nlp_sid != NLP_NO_SID) {
|
||||||
|
|
Loading…
Reference in New Issue