aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla4xxx/ql4_isr.c
diff options
context:
space:
mode:
authorVikas Chaudhary <vikas.chaudhary@qlogic.com>2012-09-20 07:35:06 -0400
committerJames Bottomley <JBottomley@Parallels.com>2012-09-24 04:38:55 -0400
commit109a008bfe73322c1e2b16a7d23eb9899afe4352 (patch)
treeee49e7b50c13a2d636e448b53206236df18c6840 /drivers/scsi/qla4xxx/ql4_isr.c
parent39c95826018ed68216cb34a1f6eb8c6b302a24f4 (diff)
[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/ql4_isr.c')
-rw-r--r--drivers/scsi/qla4xxx/ql4_isr.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_isr.c b/drivers/scsi/qla4xxx/ql4_isr.c
index 68bdb8c4d64c..50503217b069 100644
--- a/drivers/scsi/qla4xxx/ql4_isr.c
+++ b/drivers/scsi/qla4xxx/ql4_isr.c
@@ -1364,9 +1364,15 @@ try_msi:
1364 pci_disable_msi(ha->pdev); 1364 pci_disable_msi(ha->pdev);
1365 } 1365 }
1366 } 1366 }
1367 ql4_printk(KERN_WARNING, ha,
1368 "MSI: Falling back-to INTx mode -- %d.\n", ret);
1369 1367
1368 /*
1369 * Prevent interrupts from falling back to INTx mode in cases where
1370 * interrupts cannot get acquired through MSI-X or MSI mode.
1371 */
1372 if (is_qla8022(ha)) {
1373 ql4_printk(KERN_WARNING, ha, "IRQ not attached -- %d.\n", ret);
1374 goto irq_not_attached;
1375 }
1370try_intx: 1376try_intx:
1371 /* Trying INTx */ 1377 /* Trying INTx */
1372 ret = request_irq(ha->pdev->irq, ha->isp_ops->intr_handler, 1378 ret = request_irq(ha->pdev->irq, ha->isp_ops->intr_handler,
@@ -1380,7 +1386,7 @@ try_intx:
1380 ql4_printk(KERN_WARNING, ha, 1386 ql4_printk(KERN_WARNING, ha,
1381 "INTx: Failed to reserve interrupt %d already in" 1387 "INTx: Failed to reserve interrupt %d already in"
1382 " use.\n", ha->pdev->irq); 1388 " use.\n", ha->pdev->irq);
1383 return ret; 1389 goto irq_not_attached;
1384 } 1390 }
1385 1391
1386irq_attached: 1392irq_attached:
@@ -1388,6 +1394,7 @@ irq_attached:
1388 ha->host->irq = ha->pdev->irq; 1394 ha->host->irq = ha->pdev->irq;
1389 ql4_printk(KERN_INFO, ha, "%s: irq %d attached\n", 1395 ql4_printk(KERN_INFO, ha, "%s: irq %d attached\n",
1390 __func__, ha->pdev->irq); 1396 __func__, ha->pdev->irq);
1397irq_not_attached:
1391 return ret; 1398 return ret;
1392} 1399}
1393 1400