diff mbox series

ahci: don't use MSI for devices with the braindead Intel NVMe remapping scheme

Message ID 20170905164647.24101-1-hch@lst.de
State Not Applicable
Delegated to: David Miller
Headers show
Series ahci: don't use MSI for devices with the braindead Intel NVMe remapping scheme | expand

Commit Message

Christoph Hellwig Sept. 5, 2017, 4:46 p.m. UTC
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>
Testd-by: John Loy <john.robert.loy@gmail.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Cc: stable@vger.kernel.org
---
 drivers/ata/ahci.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

Comments

Dan Williams Sept. 5, 2017, 4:55 p.m. UTC | #1
On Tue, Sep 5, 2017 at 9:46 AM, Christoph Hellwig <hch@lst.de> wrote:
> 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>
> Testd-by: John Loy <john.robert.loy@gmail.com>

s/Testd-by/Tested-by/

> Signed-off-by: Christoph Hellwig <hch@lst.de>
> Cc: stable@vger.kernel.org

Acked-by: Dan Williams <dan.j.williams@intel.com>

Please also make the subject-line drier.
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tejun Heo Sept. 6, 2017, 2:40 p.m. UTC | #2
Hello,

On Tue, Sep 05, 2017 at 06:46:47PM +0200, Christoph Hellwig wrote:
> 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>
> Testd-by: John Loy <john.robert.loy@gmail.com>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> Cc: stable@vger.kernel.org

Applied to libata/for-4.14 w/ Fixes tag added and minor edits as
suggested by Dan - I changed braindead to silly, hope everyone is fine
with that.

Thanks.
diff mbox series

Patch

diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 5a5fd0b404eb..cb9b0e9090e3 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -1469,7 +1469,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)