From: Christoph Hellwig Date: Tue, 5 Sep 2017 16:46:47 +0000 (+0200) Subject: ahci: don't use MSI for devices with the silly Intel NVMe remapping scheme X-Git-Tag: v4.12.12~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5298cd803712a0c4792788051b4924d1d6e6b43;p=thirdparty%2Fkernel%2Fstable.git 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 Tested-by: John Loy Signed-off-by: Christoph Hellwig Fixes: d684a90d38e2 ("ahci: per-port msix support") Signed-off-by: Tejun Heo Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index c69954023c2e7..13080f1284e84 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)