diff options
author | James Smart <james.smart@emulex.com> | 2012-03-01 22:35:34 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-03-27 03:26:30 -0400 |
commit | 401ee0c1d698e798a9317e2ed6207badae93e266 (patch) | |
tree | a22fe0117fb5ae7ef22cd9bd5513a870eeb5e3c7 /drivers/scsi | |
parent | 97f2ecf1f401d689d4036f64c244fad3b39e5e0a (diff) |
[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')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_init.c | 8 |
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) | |||
2704 | } | 2704 | } |
2705 | spin_lock_irq(shost->host_lock); | 2705 | spin_lock_irq(shost->host_lock); |
2706 | ndlp->nlp_flag &= ~NLP_NPR_ADISC; | 2706 | ndlp->nlp_flag &= ~NLP_NPR_ADISC; |
2707 | 2707 | spin_unlock_irq(shost->host_lock); | |
2708 | /* | 2708 | /* |
2709 | * Whenever an SLI4 port goes offline, free the | 2709 | * Whenever an SLI4 port goes offline, free the |
2710 | * RPI. A new RPI when the adapter port comes | 2710 | * RPI. Get a new RPI when the adapter port |
2711 | * back online. | 2711 | * comes back online. |
2712 | */ | 2712 | */ |
2713 | if (phba->sli_rev == LPFC_SLI_REV4) | 2713 | if (phba->sli_rev == LPFC_SLI_REV4) |
2714 | lpfc_sli4_free_rpi(phba, ndlp->nlp_rpi); | 2714 | lpfc_sli4_free_rpi(phba, ndlp->nlp_rpi); |
2715 | |||
2716 | spin_unlock_irq(shost->host_lock); | ||
2717 | lpfc_unreg_rpi(vports[i], ndlp); | 2715 | lpfc_unreg_rpi(vports[i], ndlp); |
2718 | } | 2716 | } |
2719 | } | 2717 | } |