diff options
author | Vikas Chaudhary <vikas.chaudhary@qlogic.com> | 2012-09-20 07:35:06 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-09-24 12:38:55 +0400 |
commit | 109a008bfe73322c1e2b16a7d23eb9899afe4352 (patch) | |
tree | ee49e7b50c13a2d636e448b53206236df18c6840 /drivers/scsi/qla4xxx | |
parent | 39c95826018ed68216cb34a1f6eb8c6b302a24f4 (diff) | |
download | op-kernel-dev-109a008bfe73322c1e2b16a7d23eb9899afe4352.zip op-kernel-dev-109a008bfe73322c1e2b16a7d23eb9899afe4352.tar.gz |
[SCSI] qla4xxx: Prevent MSI/MSI-X falling back to INTx for ISP82XX
For ISP82xx mixed interrupt mode is not supported.
Hence prevent MSI/MSI-x from falling back to INTx mode.
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/qla4xxx')
-rw-r--r-- | drivers/scsi/qla4xxx/ql4_isr.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_isr.c b/drivers/scsi/qla4xxx/ql4_isr.c index 68bdb8c..5050321 100644 --- a/drivers/scsi/qla4xxx/ql4_isr.c +++ b/drivers/scsi/qla4xxx/ql4_isr.c @@ -1364,9 +1364,15 @@ try_msi: pci_disable_msi(ha->pdev); } } - ql4_printk(KERN_WARNING, ha, - "MSI: Falling back-to INTx mode -- %d.\n", ret); + /* + * Prevent interrupts from falling back to INTx mode in cases where + * interrupts cannot get acquired through MSI-X or MSI mode. + */ + if (is_qla8022(ha)) { + ql4_printk(KERN_WARNING, ha, "IRQ not attached -- %d.\n", ret); + goto irq_not_attached; + } try_intx: /* Trying INTx */ ret = request_irq(ha->pdev->irq, ha->isp_ops->intr_handler, @@ -1380,7 +1386,7 @@ try_intx: ql4_printk(KERN_WARNING, ha, "INTx: Failed to reserve interrupt %d already in" " use.\n", ha->pdev->irq); - return ret; + goto irq_not_attached; } irq_attached: @@ -1388,6 +1394,7 @@ irq_attached: ha->host->irq = ha->pdev->irq; ql4_printk(KERN_INFO, ha, "%s: irq %d attached\n", __func__, ha->pdev->irq); +irq_not_attached: return ret; } |