Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 109a008b authored by Vikas Chaudhary's avatar Vikas Chaudhary Committed by James Bottomley
Browse files

[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: default avatarVikas Chaudhary <vikas.chaudhary@qlogic.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent 39c95826
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -1364,9 +1364,15 @@ int qla4xxx_request_irqs(struct scsi_qla_host *ha)
			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 @@ int qla4xxx_request_irqs(struct scsi_qla_host *ha)
		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 @@ int qla4xxx_request_irqs(struct scsi_qla_host *ha)
	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;
}