From: Andrei Leonchikov <andreil499@xxxxxxxxx> Signed-off-by: Andrei Leonchikov <andreil499@xxxxxxxxx> --- drivers/pci/pci.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 1b27b5af3..ed5f0888c 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -3149,9 +3149,12 @@ void pci_configure_ari(struct pci_dev *dev) if (!bridge) return; - pcie_capability_read_dword(bridge, PCI_EXP_DEVCAP2, &cap); - if (!(cap & PCI_EXP_DEVCAP2_ARI)) - return; + if ((dev->driver != NULL) && (strncmp(dev->driver->name, "nvme", 4) == 0)) { + // for NVME device this field always zero, but ARI can be enabled + pcie_capability_read_dword(bridge, PCI_EXP_DEVCAP2, &cap); + if (!(cap & PCI_EXP_DEVCAP2_ARI)) + return; + } if (pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ARI)) { pcie_capability_set_word(bridge, PCI_EXP_DEVCTL2, -- 2.21.0