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 |
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
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 --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)
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(-)