aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_els.c
diff options
context:
space:
mode:
authorJamie Wellnitz <Jamie.Wellnitz@emulex.com>2006-02-28 22:33:10 -0500
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-03-06 10:47:31 -0500
commit66a9ed66000d186933892ca5121e68a071d624ac (patch)
treec5aa2b1e2e819876a980e59f3cbd8d0a7761aeae /drivers/scsi/lpfc/lpfc_els.c
parent5fe9f5119378e75986ad90c783a7e085bf67703a (diff)
[PATCH] lpfc 8.1.3: Protect NPL lists with host lock
Protect NPL lists with host lock Symptoms: lpfc_findnode_rpi and lpfc_findnode_did can be called outside of the discovery thread context. We have to iterate through the NPL lists under the host lock and all add/del operations on those lists have to be done under host lock. Signed-off-by: Jamie Wellnitz <Jamie.Wellnitz@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_els.c')
-rw-r--r--drivers/scsi/lpfc/lpfc_els.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index 6e1a5162851c..090f4609d2af 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -3144,8 +3144,9 @@ lpfc_els_timeout_handler(struct lpfc_hba *phba)
3144 3144
3145 if (cmd->ulpCommand == CMD_GEN_REQUEST64_CR) { 3145 if (cmd->ulpCommand == CMD_GEN_REQUEST64_CR) {
3146 struct lpfc_nodelist *ndlp; 3146 struct lpfc_nodelist *ndlp;
3147 3147 spin_unlock_irq(phba->host->host_lock);
3148 ndlp = lpfc_findnode_rpi(phba, cmd->ulpContext); 3148 ndlp = lpfc_findnode_rpi(phba, cmd->ulpContext);
3149 spin_lock_irq(phba->host->host_lock);
3149 remote_ID = ndlp->nlp_DID; 3150 remote_ID = ndlp->nlp_DID;
3150 if (cmd->un.elsreq64.bdl.ulpIoTag32) { 3151 if (cmd->un.elsreq64.bdl.ulpIoTag32) {
3151 lpfc_sli_issue_abort_iotag32(phba, 3152 lpfc_sli_issue_abort_iotag32(phba,