[SCSI] lpfc 8.3.0 : Add active interrupt test for enabling MSI/MSI-X/INTx
Per the recent discussions at the Linux Plumbers Conference, when enabling MSI or MSI-X, generate a test interrupt to verify the interrupt routing is working properly. If the test interrupt fails, fall back to MSI first, and if that fails as well, to INTx. If the interrupt test fails with INTx, log an error and fail the PCI probe. Also changed the use of spin_(lock|unlock) to the _irq(save|restore) variants in the interrupt handlers because with multi-message MSI-X, both interrupt handlers can now run in parallel. Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
committed by
James Bottomley
parent
eaf15d5b56
commit
5b75da2fa2
@@ -1315,10 +1315,12 @@ lpfc_mbox_get(struct lpfc_hba * phba)
|
||||
void
|
||||
lpfc_mbox_cmpl_put(struct lpfc_hba * phba, LPFC_MBOXQ_t * mbq)
|
||||
{
|
||||
unsigned long iflag;
|
||||
|
||||
/* This function expects to be called from interrupt context */
|
||||
spin_lock(&phba->hbalock);
|
||||
spin_lock_irqsave(&phba->hbalock, iflag);
|
||||
list_add_tail(&mbq->list, &phba->sli.mboxq_cmpl);
|
||||
spin_unlock(&phba->hbalock);
|
||||
spin_unlock_irqrestore(&phba->hbalock, iflag);
|
||||
return;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user