* [PATCH 3/6] lpfc 8.1.7 : Fix race condition between lpfc_sli_issue_mbox and lpfc_online
@ 2006-08-01 11:33 James Smart
0 siblings, 0 replies; only message in thread
From: James Smart @ 2006-08-01 11:33 UTC (permalink / raw)
To: linux-scsi
Fix race condition between lpfc_sli_issue_mbox and lpfc_online
Signed-off-by: James Smart <James.Smart@emulex.com>
diff -upNr a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
--- a/drivers/scsi/lpfc/lpfc_sli.c 2006-08-01 07:10:11.000000000 -0400
+++ b/drivers/scsi/lpfc/lpfc_sli.c 2006-08-01 07:10:57.000000000 -0400
@@ -1711,15 +1711,13 @@ lpfc_sli_brdreset(struct lpfc_hba * phba
phba->fc_myDID = 0;
phba->fc_prevDID = 0;
- psli->sli_flag = 0;
-
/* Turn off parity checking and serr during the physical reset */
pci_read_config_word(phba->pcidev, PCI_COMMAND, &cfg_value);
pci_write_config_word(phba->pcidev, PCI_COMMAND,
(cfg_value &
~(PCI_COMMAND_PARITY | PCI_COMMAND_SERR)));
- psli->sli_flag &= ~LPFC_SLI2_ACTIVE;
+ psli->sli_flag &= ~(LPFC_SLI2_ACTIVE | LPFC_PROCESS_LA);
/* Now toggle INITFF bit in the Host Control Register */
writel(HC_INITFF, phba->HCregaddr);
mdelay(1);
@@ -1905,6 +1903,9 @@ lpfc_sli_hba_setup(struct lpfc_hba * phb
}
while (resetcount < 2 && !done) {
+ spin_lock_irq(phba->host->host_lock);
+ phba->sli.sli_flag |= LPFC_SLI_MBOX_ACTIVE;
+ spin_unlock_irq(phba->host->host_lock);
phba->hba_state = LPFC_STATE_UNKNOWN;
lpfc_sli_brdrestart(phba);
msleep(2500);
@@ -1912,6 +1913,9 @@ lpfc_sli_hba_setup(struct lpfc_hba * phb
if (rc)
break;
+ spin_lock_irq(phba->host->host_lock);
+ phba->sli.sli_flag &= ~LPFC_SLI_MBOX_ACTIVE;
+ spin_unlock_irq(phba->host->host_lock);
resetcount++;
/* Call pre CONFIG_PORT mailbox command initialization. A value of 0
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2006-08-01 11:33 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-01 11:33 [PATCH 3/6] lpfc 8.1.7 : Fix race condition between lpfc_sli_issue_mbox and lpfc_online James Smart
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox