forked from Minki/linux
[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;
|
||||
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;
|
||||
|
||||
switch (cmd) {
|
||||
|
@ -68,6 +68,15 @@ lpfc_process_nodev_timeout(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp)
|
||||
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;
|
||||
|
||||
if (ndlp->nlp_sid != NLP_NO_SID) {
|
||||
|
Loading…
Reference in New Issue
Block a user