[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>
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index e15120d..8270414 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -68,6 +68,15 @@
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) {