summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsreekanth.reddy@lsi.com <sreekanth.reddy@lsi.com>2012-08-22 16:55:13 +0530
committerBen Hutchings <ben@decadent.org.uk>2012-10-10 03:30:56 +0100
commit8756f652afeddf11a6a1c54a09c410b1fe688b3d (patch)
tree79fe5ac4f42d69400e31bcda710451fd74f47498
parent79167c4322ea74261a7da65d62238b3c7c60ec1e (diff)
mpt2sas: Fix for issue - Unable to boot from the drive connected to HBA
commit 10cce6d8b5af0b32bc4254ae4a28423a74c0921c upstream. This patch checks whether HBA is SAS2008 B0 controller. if it is a SAS2008 B0 controller then it use IO-APIC interrupt instead of MSIX, as SAS2008 B0 controller doesn't support MSIX interrupts. [jejb: fix whitespace problems] Signed-off-by: Sreekanth Reddy <sreekanth.reddy@lsi.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_base.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.c b/drivers/scsi/mpt2sas/mpt2sas_base.c
index 98cb5e6f92d6..17de34807178 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_base.c
+++ b/drivers/scsi/mpt2sas/mpt2sas_base.c
@@ -1156,6 +1156,13 @@ _base_check_enable_msix(struct MPT2SAS_ADAPTER *ioc)
u16 message_control;
+ /* Check whether controller SAS2008 B0 controller,
+ if it is SAS2008 B0 controller use IO-APIC instead of MSIX */
+ if (ioc->pdev->device == MPI2_MFGPAGE_DEVID_SAS2008 &&
+ ioc->pdev->revision == 0x01) {
+ return -EINVAL;
+ }
+
base = pci_find_capability(ioc->pdev, PCI_CAP_ID_MSIX);
if (!base) {
dfailprintk(ioc, printk(MPT2SAS_INFO_FMT "msix not "