summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2017-09-05 18:46:47 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-09-09 17:39:34 +0200
commite5298cd803712a0c4792788051b4924d1d6e6b43 (patch)
treefc6d988be9413514acb7bb77d465fb9f63a40c7b
parentf21c4eea8bb4771a0f9a16f0c2ed76683b061818 (diff)
downloadlinux-stable-e5298cd803712a0c4792788051b4924d1d6e6b43.tar.gz
linux-stable-e5298cd803712a0c4792788051b4924d1d6e6b43.tar.bz2
linux-stable-e5298cd803712a0c4792788051b4924d1d6e6b43.zip
ahci: don't use MSI for devices with the silly Intel NVMe remapping scheme
commit f723fa4e69920f6a5dd5fa0d10ce90e2f14d189c upstream. Intel AHCI controllers that also hide NVMe devices in their bar can't use MSI interrupts, so disable them. Reported-by: John Loy <john.robert.loy@gmail.com> Tested-by: John Loy <john.robert.loy@gmail.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Fixes: d684a90d38e2 ("ahci: per-port msix support") Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/ata/ahci.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index c69954023c2e..13080f1284e8 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -1467,7 +1467,14 @@ static void ahci_remap_check(struct pci_dev *pdev, int bar,
return;
dev_warn(&pdev->dev, "Found %d remapped NVMe devices.\n", count);
- dev_warn(&pdev->dev, "Switch your BIOS from RAID to AHCI mode to use them.\n");
+ dev_warn(&pdev->dev,
+ "Switch your BIOS from RAID to AHCI mode to use them.\n");
+
+ /*
+ * Don't rely on the msi-x capability in the remap case,
+ * share the legacy interrupt across ahci and remapped devices.
+ */
+ hpriv->flags |= AHCI_HFLAG_NO_MSI;
}
static int ahci_get_irq_vector(struct ata_host *host, int port)