Skip to content

Commit

Permalink
[SCSI] lpfc 8.1.4 : Fixed a timer panic due to timer firing after fre…
Browse files Browse the repository at this point in the history
…eing ndlp

Fixed a timer panic due to timer firing after freeing ndlp

Signed-off-by: James Smart <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
  • Loading branch information
James Smart authored and James Bottomley committed Mar 12, 2006
1 parent fdcebe2 commit 1a16968
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 0 deletions.
6 changes: 6 additions & 0 deletions drivers/scsi/lpfc/lpfc_els.c
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
9 changes: 9 additions & 0 deletions drivers/scsi/lpfc/lpfc_hbadisc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down

0 comments on commit 1a16968

Please sign in to comment.