lpfc 8.1.4 : Fixed a timer panic due to timer firing after freeing ndlp
Subsystems (2)
PATCH 3/6 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 <[email protected]>
drivers/scsi/lpfc/lpfc_hbadisc.c +9 -0
@@ -68,6 +68,15 @@ lpfc_process_nodev_timeout(struct lpfc_hreturn ; } +/* +* 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 ) {
drivers/scsi/lpfc/lpfc_els.c +6 -0
@@ -1523,6 +1523,12 @@ lpfc_els_retry_delay_handler(struct lpfc 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) {