summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_init.c
diff options
context:
space:
mode:
authorJames Smart2012-03-02 04:35:34 +0100
committerJames Bottomley2012-03-27 09:26:30 +0200
commit401ee0c1d698e798a9317e2ed6207badae93e266 (patch)
treea22fe0117fb5ae7ef22cd9bd5513a870eeb5e3c7 /drivers/scsi/lpfc/lpfc_init.c
parent[SCSI] lpfc 8.3.30: Fix RPI registered multiple times after HBA reset (diff)
downloadkernel-qcow2-linux-401ee0c1d698e798a9317e2ed6207badae93e266.tar.gz
kernel-qcow2-linux-401ee0c1d698e798a9317e2ed6207badae93e266.tar.xz
kernel-qcow2-linux-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/lpfc_init.c')
-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);
}
}