summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc
diff options
context:
space:
mode:
authorJames Smart <james.smart@emulex.com>2012-03-01 22:35:34 -0500
committerJames Bottomley <JBottomley@Parallels.com>2012-03-27 08:26:30 +0100
commit401ee0c1d698e798a9317e2ed6207badae93e266 (patch)
treea22fe0117fb5ae7ef22cd9bd5513a870eeb5e3c7 /drivers/scsi/lpfc
parent97f2ecf1f401d689d4036f64c244fad3b39e5e0a (diff)
downloadlinux-stable-401ee0c1d698e798a9317e2ed6207badae93e266.tar.gz
linux-stable-401ee0c1d698e798a9317e2ed6207badae93e266.tar.bz2
linux-stable-401ee0c1d698e798a9317e2ed6207badae93e266.zip
[SCSI] lpfc 8.3.30: Fix deadlock during adapter offline request
Signed-off-by: Alex Iannicelli <alex.iannicelli@emulex.com> Signed-off-by: James Smart <james.smart@emulex.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/lpfc')
-rw-r--r--drivers/scsi/lpfc/lpfc_init.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index 5b66142dbf56..d8e8270b1584 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -2704,16 +2704,14 @@ lpfc_offline_prep(struct lpfc_hba * phba)
}
spin_lock_irq(shost->host_lock);
ndlp->nlp_flag &= ~NLP_NPR_ADISC;
-
+ spin_unlock_irq(shost->host_lock);
/*
* Whenever an SLI4 port goes offline, free the
- * RPI. A new RPI when the adapter port comes
- * back online.
+ * RPI. Get a new RPI when the adapter port
+ * comes back online.
*/
if (phba->sli_rev == LPFC_SLI_REV4)
lpfc_sli4_free_rpi(phba, ndlp->nlp_rpi);
-
- spin_unlock_irq(shost->host_lock);
lpfc_unreg_rpi(vports[i], ndlp);
}
}