aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_sli.c
diff options
context:
space:
mode:
authorJames Smart <james.smart@emulex.com>2012-06-12 13:54:36 -0400
committerJames Bottomley <JBottomley@Parallels.com>2012-07-20 03:58:28 -0400
commit618a5230b8fa62bc7901b8b754b4379b3fcfa0f9 (patch)
treeda409c55a30e8d283f31bb8594df3da6e395a002 /drivers/scsi/lpfc/lpfc_sli.c
parentbbeb79b90e806da2e2338bd8d89c6fa8a1333357 (diff)
[SCSI] lpfc 8.3.32: Correct provisioning change failure on local function
Fixed system held-up when performing resource provsion through same PCI function 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_sli.c')
-rw-r--r--drivers/scsi/lpfc/lpfc_sli.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
index 3e4f8eaa1fb8..3333e64703a3 100644
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -8984,7 +8984,7 @@ lpfc_sli_hba_down(struct lpfc_hba *phba)
8984 int i; 8984 int i;
8985 8985
8986 /* Shutdown the mailbox command sub-system */ 8986 /* Shutdown the mailbox command sub-system */
8987 lpfc_sli_mbox_sys_shutdown(phba); 8987 lpfc_sli_mbox_sys_shutdown(phba, LPFC_MBX_WAIT);
8988 8988
8989 lpfc_hba_down_prep(phba); 8989 lpfc_hba_down_prep(phba);
8990 8990
@@ -9996,11 +9996,17 @@ lpfc_sli_issue_mbox_wait(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmboxq,
9996 * sub-system flush routine to gracefully bring down mailbox sub-system. 9996 * sub-system flush routine to gracefully bring down mailbox sub-system.
9997 **/ 9997 **/
9998void 9998void
9999lpfc_sli_mbox_sys_shutdown(struct lpfc_hba *phba) 9999lpfc_sli_mbox_sys_shutdown(struct lpfc_hba *phba, int mbx_action)
10000{ 10000{
10001 struct lpfc_sli *psli = &phba->sli; 10001 struct lpfc_sli *psli = &phba->sli;
10002 unsigned long timeout; 10002 unsigned long timeout;
10003 10003
10004 if (mbx_action == LPFC_MBX_NO_WAIT) {
10005 /* delay 100ms for port state */
10006 msleep(100);
10007 lpfc_sli_mbox_sys_flush(phba);
10008 return;
10009 }
10004 timeout = msecs_to_jiffies(LPFC_MBOX_TMO * 1000) + jiffies; 10010 timeout = msecs_to_jiffies(LPFC_MBOX_TMO * 1000) + jiffies;
10005 10011
10006 spin_lock_irq(&phba->hbalock); 10012 spin_lock_irq(&phba->hbalock);